MySQL Regexp搜索关键字

时间:2011-08-11 14:53:07

标签: mysql regex

我使用此查询

SELECT keyword
FROM files
UNION SELECT keyword
FROM search
WHERE keyword
REGEXP "/(honda)|(jazz)|(manual)/"
AND keyword !=  "honda jazz manual"
ORDER BY keyword ASC 
LIMIT 0 , 10

但我得到了这个结果

  

大爆炸理论参考

我想问你们,如何使用regexp搜索关键字。

1 个答案:

答案 0 :(得分:0)

请尝试以下方法:

SELECT keyword
FROM
(SELECT keyword
 FROM files
 UNION SELECT keyword
 FROM search) allkeywords
WHERE keyword REGEXP '(honda|jazz|manual)'
AND keyword !=  'honda jazz manual'
ORDER BY keyword ASC 
LIMIT 0 , 10

请参阅http://sqlfiddle.com/#!2/9341ff/5

说明:

(1)联合查询需要进入子查询以允许WHERE子句影响所有子查询。

(2)REGEXP语法略有错误 - 括号围绕整个OR表达式,而不是单个项目。