MySQL RegEx:从正则表达式中得到错误“空(子)表达式”

Bor*_*iin 3 regex mysql

我有一个列participants,其中包含一个类似于"99005|99001|99002|99001999|99004"用户登录的值。

我到底想要的是匹配"99001"而不匹配"99001999"

这是我的方法:

SELECT * FROM `bv_sklad_products` WHERE `stage`=4 AND `participants` REGEXP ('^([^\|]+(\|))*(99001|99005)((\|)[^\|]+)*$') AND `start_date` BETWEEN '2015-07-09' AND '2015-07-10' ORDER BY `id` DESC LIMIT 0,100
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息:

Got error 'empty (sub)expression' from regexp
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Avi*_*Raj 5

您可以使用单词边界。

regexp  '[[:<:]]99001[[:>:]]'
Run Code Online (Sandbox Code Playgroud)

或者

regexp '(^|[|])99001([|]|$)'
Run Code Online (Sandbox Code Playgroud)