我有一个列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)
我究竟做错了什么?
您可以使用单词边界。
regexp '[[:<:]]99001[[:>:]]'
Run Code Online (Sandbox Code Playgroud)
或者
regexp '(^|[|])99001([|]|$)'
Run Code Online (Sandbox Code Playgroud)