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]').