我正在尝试使用以下 SQL 语句在 MySQL 8.0 中找到一个确切的数字
SELECT * FROM rulebook.node__body
WHERE body_value REGEXP "[[:<:]]DVP[[:>:]]";
Run Code Online (Sandbox Code Playgroud)
当我运行上述 SQL 语句时,出现以下错误
错误代码:3685。正则表达式的非法参数
你能请任何人告诉我我哪里出错了。
Leo*_*los 14
随着 MySQL 8.0 的采用增加和使用REGEXP开始中断的先前存储的 SQL 查询,这个问题可能会变得更加流行。
根据MySQL 8.0 Reference Manual / ... / Regular Expressions,“MySQL 使用 International Components for Unicode (ICU) 实现了正则表达式支持。”
根据MySQL 5.6 Reference Manual / ... / Regular Expressions,“MySQL 使用 Henry Spencer 的正则表达式实现。”
因此,由于您使用的是 MySQL 8.0,而不是使用[[:<:]]和[[:>:]],您现在可以使用\b. 您的查询可能如下所示:
SELECT *
FROM `rulebook`.`node__body`
WHERE `body_value` REGEXP "\\bDVP\\b"
;
Run Code Online (Sandbox Code Playgroud)
Dio*_*ung -2
您的正则表达式包含无效的括号。假设您正在尝试查找body_value包含<andDVP和 的任何行>,您可以尝试:
SELECT * FROM rulebook.node__body
WHERE body_value REGEXP '.*<.*DVP.*>.*';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2621 次 |
| 最近记录: |