mysql - 是否需要修改 RegEx 模式才能与 MySql 中的 SQL 一起使用?

标签 mysql regex

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

我还试图在占位符之后转义\。

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

是否需要修改我的 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 中只是 "..")

阅读documentation on regular expressions in MySQL获取更多信息。

关于mysql - 是否需要修改 RegEx 模式才能与 MySql 中的 SQL 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654374/

相关文章:

php - 如何转义 REGEXP 子句中的括号

swift - NSRegularExpressions - 非捕获组不工作

mysql - 如何从多个数据库调用信息并将其显示在一页上?

Mysql 选择每组内的最新输入

mysql - 如何根据一列的最大值从 MySQL 中选择行并将另外两列分组?

mysql - 两次更新或删除和插入哪个更成本?

regex - 如何组合这些正则表达式?

regex - 提取R中符号周围的字符

javascript - 需要删除句子中间的特殊字符但不删除字符串的开头和结尾

php - 没有从查询中获取数据。 PDO