首页 >数据库 >mysql教程 >为什么 MySQL REGEXP 抛出'#1139 错误:重复运算符操作数无效”以及如何修复它?

为什么 MySQL REGEXP 抛出'#1139 错误:重复运算符操作数无效”以及如何修复它?

Susan Sarandon
Susan Sarandon原创
2024-11-23 15:25:13757浏览

Why Does MySQL REGEXP Throw

#1139 错误:正则表达式中的重复运算符操作数无效

使用正则表达式 (regex) 查询 MySQL 表以选择特定的结果,用户偶尔会遇到错误“#1139 - Got error 'repetition-operator operand invalid' from regexp."此错误表明提供的正则表达式包含无效的重复运算符操作数。

原因:

出现该错误是因为 MySQL 使用 Henry Spencer 符合 POSIX 标准的正则表达式实现。此实现不支持 PCRE(Perl 兼容正则表达式)中使用的非贪婪量词,例如“?”。因此,在正则表达式中的“*”或“”后使用“?,”将触发错误。

解决方案:

要解决此问题,请替换非- 贪婪量词“?”使用贪婪量词“*”,仍然会执行必要的匹配:

SELECT text
FROM `articles`
WHERE content REGEXP '.*<img[^>]*src="http://www'
ORDER BY date DESC

此外,避免匹配诸如 为什么 MySQL REGEXP 抛出'#1139 错误:重复运算符操作数无效”以及如何修复它?

以上是为什么 MySQL REGEXP 抛出'#1139 错误:重复运算符操作数无效”以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn