Mencocokan data nomor telephone
Posted by dillah2008 on September 5, 2008
Seringkali kita harus mencocokan suatu data di dalam database dimana format pengisian dalam data tersebut bebas,
Kasusnya adalah gw disuruh mencocokan data nomor telephon yang dimasukan oleh pengunjung web dengan data nomor telepon yang ada dalam database perusahaan. Permasalahannya adalah tidak adanya standard penulisan dalam menulis nomor telephon tersebut, bisa saja nomor telepon ditulis seperti berikut :
- 085676767689
- +6285676767689
- 0856 7676 7689
- +62 856 7676 7689
- dst….
Jika hanya mengandalkan LIKE atau = pada SQL biasa tidak bisa, karena kedua teknik tersebut hanya benar2 mencocokan tiap2 karakter. Kemudian terpikir bagaimana caranya supaya data yang diambil tidak menganggap karakter2 lain selain bilangan, dan ternyata pada postgre gw mendapat fungsi replace yang bisa dimanfaatkan.
Pada masalah gw adalah, user memasukan dulu data nomor teleponnya kedalam web…setelah itu ada petugas yang mencocokan satu persatu nomor telepon tersebut, mungkin dengan kasus ini gw agak dimudahkan.
Akhirnya teknik yang gunakan adalah dengan meng-eliminasi karakter2 yang tidak diperlukan seperti : – , ( , ) , dan lainnya dengan terlebih dahulu melihat data nomor telepon yang ada. Kurang lebihnya SQL yang gw gunakan adalah seperti berikut :
SELECT * FROM tbl_cust_list WHERE replace( replace( replace( replace( replace( home_phone, ‘)’, ”), ‘(‘, ”), ‘ ‘, ”), ‘.’, ”), ‘-’, ”) ILIKE ‘%”.$home_phone_mod.” ‘ OR replace( replace( replace( cellular, ‘ ‘, ”), ‘.’, ”), ‘-’, ”) ILIKE ‘%”.$cellular_mod.”‘”
Yahh alhamdulillah dengan teknik sederhana ini untuk sementara kasus yang gw hadapi terselesaikan,