Dalam mode boolean, membutuhkan string untuk hadir (bukan hanya mencetak lebih tinggi), dilakukan dengan +
. pencocokan awalan dilakukan dengan akhiran *
. Sepertinya ini yang Anda inginkan, jadi cari:
+John* +S*
+John* +Smith*
+Smith* +J*
+Jo* +S*
Perhatikan bahwa indeks Teks Lengkap tidak dapat membantu Anda mencari 'di mana saja dalam sebuah kata'. jadi sesuatu seperti *mith*
pasti gagal:mereka dimaksudkan untuk mencocokkan dari karakter 1 dalam indeks.
Jika Anda juga ingin mengurutkannya berdasarkan nilai kecocokan, dan misalnya, perlu John Smith
sebelum Johnny Smithson
, Anda akan melakukan ini:
SELECT * FROM user
WHERE MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE)
ORDER BY MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE) DESC;
Yang akan Anda lihat tidak akan membawa Anda ke mana pun kecuali Anda menambahkan semua kata>=ft_min_word_len
lagi secara terpisah:
+John* +S* John
+John* +Smith* John Smith
+Smith* +J* Smith
+Jo* +S*
Untuk yang terakhir, keduanya adalah <4 karakter default, jadi kami tidak dapat menambahkan parameter pengurutan untuk itu di mysql default, tetapi Anda dapat mengatur ft_min_world_len
berbeda yang diinginkan.