使用正则表达式匹配MYSQL中句子中的单词
Posted
技术标签:
【中文标题】使用正则表达式匹配MYSQL中句子中的单词【英文标题】:match a word from a sentence in MYSQL using regex 【发布时间】:2011-04-10 23:37:24 【问题描述】:如何使用正则表达式从列中匹配句子中的单词?我试过了:
"select * from table where column regex '/\b".$text."\b/i'"
但这没有用。
【问题讨论】:
【参考方案1】:试试这个:
"SELECT * FROM table WHERE column REGEXP '[[:<:]]" . $text . "[[:>:]]'"
您应该确保任何可以在 $text 中被解释为特殊字符的字符都被正确转义。您还应该确保您没有得到 SQL 注入。
【讨论】:
【参考方案2】:mysql 对这样的事情特别糟糕。我建议使用 MATCH AGAINST 语法 http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html 或使用 SOLR 之类的东西,如果您要批量执行此操作。
【讨论】:
【参考方案3】:我想你想要 LIKE 子句!
SELECT * FROM table WHERE column LIKE '%value%'
另外请阅读 UltimateBrent 的回答,因为全文搜索是一个非常好的点。
【讨论】:
LIKE 无法检测单词边界。 我知道这个..这就是为什么我也建议他检查你的答案。以上是关于使用正则表达式匹配MYSQL中句子中的单词的主要内容,如果未能解决你的问题,请参考以下文章