如何在 MySQL 选择查询中编写正则表达式?

Posted

技术标签:

【中文标题】如何在 MySQL 选择查询中编写正则表达式?【英文标题】:how to write Regular Expression in MySQL select queries? 【发布时间】:2011-05-20 10:29:02 【问题描述】:

我尝试使用此表达式 /\b(word\w*)\b/iword 与其他单词列表进行比较以查找重复项。我使用了preg_math_all(),效果很好。我想做同样的事情,但这次检查从 mysql 数据库中检索到的单词。这是我写的

SELECT * FROM table WHERE word = /\b(word\w*)\b/i

这没用。

【问题讨论】:

【参考方案1】:

您的查询应如下所示:

SELECT * FROM table WHERE column REGEXP '/\b(word\w*)\b/i'

【讨论】:

【参考方案2】:

MySQL regex syntax 与 php 不同,你不需要在开始和结束处使用分隔符。

SELECT * FROM table WHERE word REGEXP '\b(word\w*)\b'

您不能像在 PHP 中那样使用i 标志来区分大小写,就像在 MySQL 中一样,正则表达式是否区分大小写取决于列排序规则是否区分大小写。

【讨论】:

以上是关于如何在 MySQL 选择查询中编写正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

mysql如何正则匹配查询

普罗米修斯与正则表达式查询不匹配

如何在 Pl/SQL 中编写正则表达式匹配模式?

mongodb 正则表达式查询性能问题

如何在 Android 中使用正则表达式运行查询

SQL数据库查询使用正则表达式如何查询中文?