【发布时间】:2013-10-11 20:55:37
【问题描述】:
我正在尝试在表格中搜索特定字词。
假设我有一个单词列表:打印机、网络、无线、紧急
我只想返回包含所有这些单词的行。
SELECT * FROM tickets WHERE concat(subject,body) REGEXP "printer|network|wireless|urgent"
将返回包含这些单词中的任何一个的任何行。我怎样才能使它只返回所有这些单词都在其中的行。
谢谢,
【问题讨论】:
-
必须出现的字数是固定的还是可变的?
-
最好是一个变量。
-
你可以做
LIKE '%word1%' AND LIKE '%word2%' AND ...,虽然性能不会很好。如果您通常实现关键字搜索,您可能希望研究基于文本索引的系统,例如 Zend Lucene(基于 PHP,如果您不介意使用其他语言,还有其他系统)。