【发布时间】:2011-04-10 23:37:24
【问题描述】:
如何使用正则表达式从列中匹配句子中的单词?我试过了:
"select * from table where column regex '/\b".$text."\b/i'"
但这没有用。
【问题讨论】:
如何使用正则表达式从列中匹配句子中的单词?我试过了:
"select * from table where column regex '/\b".$text."\b/i'"
但这没有用。
【问题讨论】:
试试这个:
"SELECT * FROM table WHERE column REGEXP '[[:<:]]" . $text . "[[:>:]]'"
您应该确保任何可以在 $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 的回答,因为全文搜索是一个非常好的点。
【讨论】: