如何使用正则表达式匹配列中某个单词的单词?我试过了:使用正则表达式匹配MYSQL中的一个单词
"select * from table where column regex '/\b".$text."\b/i'"
但是没有奏效。
如何使用正则表达式匹配列中某个单词的单词?我试过了:使用正则表达式匹配MYSQL中的一个单词
"select * from table where column regex '/\b".$text."\b/i'"
但是没有奏效。
试试这个:
"SELECT * FROM table WHERE column REGEXP '[[:<:]]" . $text . "[[:>:]]'"
你应该确保,可以在$文本被解释为特殊字符的字符都正确转义。你还应该确保你没有得到SQL注入。
对于像这样的东西,MySQL尤其糟糕。我建议使用MATCH AGAINST语法http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html或使用类似SOLR的东西,如果你打算这样做的话。
我想你想要LIKE子句!
SELECT * FROM table WHERE column LIKE '%value%'
也请阅读UltimateBrent的答案全文搜索是一个非常好的观点。
LIKE无法检测单词边界。 – 2010-09-10 23:38:02
我知道这一点。这就是为什么我也建议他检查你的答案。 – RobertPitt 2010-09-10 23:41:40