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

kueri mysql untuk mencocokkan kalimat dengan kata kunci di bidang

Salah satu cara untuk melakukannya adalah dengan mengonversi apple, oranges, pears ke apple|oranges|pears dan gunakan RLIKE (yaitu ekspresi reguler) untuk mencocokkannya.

Misalnya, 'John suka makan apel' cocok dengan ekspresi reguler 'apel|jeruk|pir'.

Pertama, untuk mengonversi 'apel, jeruk, pir' ke bentuk regex, ganti semua ', ' dengan '|' menggunakan REPLACE . Kemudian gunakan RLIKE untuk memilih entri kata kunci yang cocok:

SELECT * 
FROM keywords_table
WHERE 'John liked to eat apples' RLIKE REPLACE(keywords,', ','|');

Namun ini bergantung pada konsistensi pemisahan koma Anda (yaitu jika ada satu baris yang terlihat seperti apples,oranges ini tidak akan berfungsi sebagai REPLACE menggantikan koma diikuti dengan spasi (sesuai contoh baris Anda).

Saya juga tidak berpikir itu akan meningkat dengan baik.

Dan, jika Anda memiliki kalimat seperti 'John suka makan nanas', itu akan cocok dengan kedua baris di atas (karena ada 'apel' di dalamnya). Anda kemudian dapat mencoba menambahkan batas kata ke ekspresi reguler (yaitu WHERE $sentence RLIKE '[[:<:]](apple|oranges|pears)[[:>:]]' ), tetapi ini akan mengacaukan pencocokan ketika Anda memiliki bentuk jamak ('apel' tidak akan cocok dengan '[wordboundary]apple[wordboundary]').



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mendapatkan kembali UUID Java yang disimpan di DB sebagai biner

  2. Aplikasi yang sama, database yang berbeda:Entity framework 6.X + MySQL + SQL Server

  3. Kunci duplikat saat menulis atau memperbarui?

  4. Inner Join Banyak ke Banyak Tabel dengan Filter Di MySQL

  5. Apakah Entity Framework terkait dengan SQL Server?