mysql错误“重复运算符操作数无效”

pftdvrlh  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(318)

我得到一个奇怪的mysql错误,我从来没有真正看到过。它是由一个类似于下面的查询引起的。有什么建议吗?

SELECT *
  FROM table
 WHERE col REGEXP '^* MAN *$'  
 LIMIT 100

错误:


# 1139 - Got error 'repetition-operator operand invalid' from regexp

--更新--
好的,我可以确认以下两种解决方案有效。感谢以下两个答案的帮助:

SELECT *
  FROM table
 WHERE col REGEXP '^(\\*) MAN (\\*)$'  
 LIMIT 100

SELECT *
  FROM table
 WHERE col REGEXP '^[*] MAN [*]$'  
 LIMIT 100
goqiplq2

goqiplq21#

\和本身是元字符,这就是为什么后面要跟两个,所以seconod也不被认为是一个文字,而是元字符
这将起作用:

SELECT *
FROM Table1
WHERE column1 RLIKE '(\\*)(man)(\\*)';

请参见链接其工作原理now:http://sqlfiddle.com/#!9/e695cf/1/0型

whlutmcx

whlutmcx2#

例如,如果你想匹配“bla-blamanbla-bla”,这应该是可行的

SELECT *
FROM table
WHERE col REGEXP '[*] MAN [*]'

如果你想匹配“

SELECT *
FROM table
WHERE col REGEXP '^[*] MAN [*]$'

或者没有regexp

SELECT *
FROM table
WHERE col ='* MAN *'

相关问题