我有一个包含 10k 个关键字的 Mysql InnoDB 表,我想将它们与多个文本进行匹配。
有些关键字有几个词,我只想要完全匹配。
示例:关键字 - brown fox、lazy cat、dog、fox、rabbit
文本 - 敏捷的棕色狐狸跳过懒惰的狗
我希望查询返回 - brown fox, dog, fox
SELECT * FROM tenKTable
WHERE 'The quick brown fox jumps over the lazy dog' LIKE CONCAT('%',keyword,'%')
这是一个想法:
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,' %')
请记住在文本前面加上空格。这样,您可以完全避免部分匹配。