10k個のキーワードを持つMysqlInnoDBテーブルがあり、それらをいくつかのテキストと照合したいと思います。
一部のキーワードにはいくつかの単語があり、完全に一致するものだけが必要です。
例:キーワード-茶色のキツネ、怠惰な猫、犬、キツネ、ウサギ
テキスト-速い茶色のキツネが怠惰な犬を飛び越える
クエリを返したい-茶色のキツネ、犬、キツネ
SELECT * FROM tenKTable
WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%',keyword,'%')
ここに1つのアイデアがあります:
SELECT keyword
FROM Keywords
JOIN (SELECT 'The quick brown fox jumps over the lazy dog' as col) k
on k.col like Concat('%',keywords.keyword,'%')
そしてSQLフィドル。
幸運を。
受け入れられた答えはとても良いです。改善は
SELECT kw FROM keyword
WHERE ' text ' LIKE CONCAT('% ',kw,' %')
テキストの前にスペースを追加することを忘れないでください。このようにして、部分一致を完全に回避します。