Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat pencarian teks lengkap mysql beberapa kolom di mana sebagian kata dicocokkan

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tabel magento sales_flat_order bidang protect_code penjelasan

  2. Butuh kueri mysql

  3. Cara menyisipkan ke baris MYSQL dari beberapa array $_POST

  4. Bagaimana Cara Mencadangkan dan Memulihkan Basis Data MySQL menggunakan NetBeans?

  5. Tidak dapat menampilkan nilai yang dipisahkan koma dalam tabel