3

我有一个包含 10k 个关键字的 Mysql InnoDB 表,我想将它们与多个文本进行匹配。

有些关键字有几个词,我只想要完全匹配。

示例:关键字 - brown fox、lazy cat、dog、fox、rabbit

文本 - 敏捷的棕色狐狸跳过懒惰的狗

我希望查询返回 - brown fox, dog, fox

4

3 回答 3

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

来源:MySQL SELECT 查询字符串匹配

于 2013-01-30T01:10:42.657 回答
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 回答