MySQL REGEXP - 列包含正则表达式的位置

时间:2016-03-06 01:45:51

标签: mysql regex

所以我有一张名为" lu_regex"使用名为" regex"

的列
 Select * from lu_regex; 

 athedsl-\d+
 i5[93][0-9a-fA-F]+\.versa
 5ac[a-f0-9]+.+sky

该表包含1000行,具有各种正则表达式语法,在此示例中我只显示了三个。

现在我尝试接受用户输入并将该输入与表中的行匹配。所以我这样做。

SELECT * FROM lu_regex where '5aca3a11.bb.sky.comr' regexp regex;

regex
5ac[a-f0-9]+.+sky

1 row returned.

我通过该查询得到了我的预期,然后我尝试了这个。

SELECT * FROM lu_regex where 'athedsl-07371.home.otenet.gr' regexp regex;

 0 rows returned.

它应匹配" athedsl- \ d +",但我假设它与" \ d"有关。我甚至尝试将其添加到数据库" athedsl - \\ d +"而且也没有引起比赛。

我试图坚持使用MySQL解决方案,我做错了什么,这应该是可能的。

1 个答案:

答案 0 :(得分:0)

我刚发现这个链接,它看起来像一个尚未修复的错误。它于2013年得到验证。

https://bugs.mysql.com/bug.php?id=70413

错误#70413 \ d在REGEXP中无法使用MySQL查询

我认为解决方案是用[0-9]

替换所有\ d