我使用MySql REGEXP:
SELECT * FROM myTable
WHERE title REGEXP "dog|cat|mouse";
Run Code Online (Sandbox Code Playgroud)
数据集很小,所以我不关心性能.我更喜欢这个比LIKE表示法,因为我不必连接一堆"LIKE"语句.
但是,上述表示法使用逻辑OR运算符.是否有逻辑AND运算符,以便只包含所有关键字的行?
(我正在使用InnoDB所以全文搜索不是一个选项)
m45*_*73r 12
除了连接AND之外,没有什么好的解决方案:
SELECT * FROM myTable
WHERE title REGEXP "dog"
AND title REGEXP "cat"
AND title REGEXP "mouse"
Run Code Online (Sandbox Code Playgroud)
否则正则表达式将如下所示:
SELECT * FROM myTable
WHERE title REGEXP "(dog.*cat.*mouse)|(dog.*mouse.*cat)|(mouse.*dog.*cat)|(mouse.*cat.*dog)|(cat.*dog.*mouse)|(cat.*mouse.*dog)"
Run Code Online (Sandbox Code Playgroud)