我正在尝试编写SELECT语句以从我的数据库中检索用户名列表。我的模式是:/placeholder\d+/ig
我已经测试了它并且可以确认它正常工作。我正在尝试检索表中的每个占位符。
我也尝试在占位符之后逃脱\。
我的SQL语句是:SELECT * FROM table WHERE (name REGEX '/placeholder\d+/ig')
...我尝试使用反引号等不同的变体或LIKE
代替REGEX
,但LIKE
只有%
}和_
作为通配符。
我的RegEx模式是否需要修改才能使用MySQL?
答案 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中只是".."
)