Perhatikan bahwa SOUNDS LIKE
tidak bekerja seperti yang Anda pikirkan. Itu tidak sama dengan LIKE
di MySQL, karena tidak mendukung %
karakter pengganti.
Ini berarti kueri Anda tidak akan menemukan "John David" saat menelusuri "John". Ini mungkin dapat diterima jika ini hanya cadangan Anda, tetapi ini tidak ideal.
Jadi, inilah saran yang berbeda (yang mungkin perlu diperbaiki); pertama gunakan PHP soundex()
berfungsi untuk mencari soundex dari kata kunci yang anda cari.
$soundex = soundex($word);
$soundexPrefix = substr($soundex, 0, 2); // first two characters of soundex
$sql = "SELECT lastname, firstname ".
"FROM table WHERE SOUNDEX(lastname) LIKE '$soundexPrefix%' ".
"OR SOUNDEX(firstname) LIKE '$soundexPrefix%'";
Sekarang Anda akan memiliki daftar nama depan dan nama belakang yang memiliki kesamaan yang samar-samar dalam terdengar (ini mungkin banyak entri, dan Anda mungkin ingin menambah panjang awalan soundex yang Anda gunakan untuk pencarian Anda). Anda kemudian dapat menghitung jarak Levenshtein antara soundex setiap kata dan istilah pencarian Anda, dan mengurutkannya berdasarkan itu.
Kedua, Anda harus melihat kueri berparameter di MySQL, untuk menghindari bug injeksi SQL.