是否需要修改RegEx模式以在MySql中与SQL一起使用?

时间:2015-07-27 13:26:55

标签: mysql regex

我正在尝试编写SELECT语句以从我的数据库中检索用户名列表。我的模式是:/placeholder\d+/ig我已经测试了它并且可以确认它正常工作。我正在尝试检索表中的每个占位符。

我也尝试在占位符之后逃脱\。

我的SQL语句是:SELECT * FROM table WHERE (name REGEX '/placeholder\d+/ig') ...我尝试使用反引号等不同的变体或LIKE代替REGEX,但LIKE只有% }和_作为通配符。

我的RegEx模式是否需要修改才能使用MySQL?

1 个答案:

答案 0 :(得分:2)

与大多数脚本语言不同,MySQL没有使用PREG库进行正则表达式匹配。

所以是的,您需要修改正则表达式以使其在MySQL中正常工作:

SELECT * FROM table WHERE name REGEXP 'placeholder[0-9]+'

OR

SELECT * FROM table WHERE name REGEXP 'placeholder[[:digit:]]+'

MySQL中没有像\d这样的简写字符类。此外,您不使用正则表达式分隔符("/../si"在MySQL中只是".."

阅读documentation on regular expressions in MySQL了解更多信息。