我有以下用户可能输入的搜索词(来自三个示例词):
"goofy plastic toy"
"goofy toy plastic"
"plastic goofy toy"
"plastic toy goofy"
"toy goofy plastic"
"toy plastic goofy"
我如何编写一个正确的 SELECT
语句,无需硬编码 OR
即可查看所有语句?
所以只是:
SELECT a
FROM b
WHERE c = '<search statements in all possible ways separated by spaces here>';
用户输入的字数可以是无限的。可能是两个,也可能是十个,谁知道呢。
我正在尝试搜索 100,000 个产品标题及其描述,并找出哪些记录以任何顺序包含所有字词。
最佳答案
如果您只想返回以任意顺序包含这两个词的行(即使它们还包含其他词),那么您可能需要使用 FULLTEXT
像这样的索引:
SELECT a
FROM b
WHERE MATCH (c) AGAINST ('+goofy +plastic' IN BOOLEAN MODE);
关于mysql - 如何进行 MySQL 查询以向前和向后搜索术语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383470/