我正在尝试编写一个 SELECT 语句来从我的数据库中检索用户名列表。我的模式是:/placeholder\d+/ig
并且我已经对其进行了测试并且可以确认它是否正常工作。我正在尝试检索表中的每个占位符。
我还试图在占位符之后转义\。
我的 SQL 语句是:SELECT * FROM table WHERE (name REGEX '/placeholder\d+/ig')
... 我尝试了反引号等的不同变体或 LIKE
而不是 REGEX
但 LIKE
只有 %
和 _
作为通配符。
是否需要修改我的 RegEx 模式才能与 MySQL 一起使用?
最佳答案
与大多数脚本语言不同,MySQL 不使用 PREG 库进行正则表达式匹配。
所以是的,您需要修改正则表达式以使其在 MySQL 中正常工作:
SELECT * FROM table WHERE name REGEXP 'placeholder[0-9]+'
或
SELECT * FROM table WHERE name REGEXP 'placeholder[[:digit:]]+'
MySQL 中没有\d
这样的简写字符类。此外,您不使用正则表达式分隔符("/../si"
在 MySQL 中只是 ".."
)
关于mysql - 是否需要修改 RegEx 模式才能与 MySql 中的 SQL 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654374/