3

10k個のキーワードを持つMysqlInnoDBテーブルがあり、それらをいくつかのテキストと照合したいと思います。

一部のキーワードにはいくつかの単語があり、完全に一致するものだけが必要です。

例:キーワード-茶色のキツネ、怠惰な猫、犬、キツネ、ウサギ

テキスト-速い茶色のキツネが怠惰な犬を飛び越える

クエリを返したい-茶色のキツネ、犬、キツネ

4

3 に答える 3

4
SELECT * FROM tenKTable 
WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%',keyword,'%')

ソース:MySQLSELECTクエリ文字列マッチング

于 2013-01-30T01:10:42.657 に答える
1

ここに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フィドル

幸運を。

于 2013-01-30T01:10:15.380 に答える
0

受け入れられた答えはとても良いです。改善は

SELECT kw FROM keyword
WHERE ' text ' LIKE CONCAT('% ',kw,' %')

テキストの前にスペースを追加することを忘れないでください。このようにして、部分一致を完全に回避します。

于 2021-08-27T09:32:33.960 に答える