我有一个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
我收到错误消息:
Got error 'empty (sub)expression' from regexp
我做错了什么?
答案 0 :(得分:3)
您可以使用字边界。
regexp '[[:<:]]99001[[:>:]]'
或
regexp '(^|[|])99001([|]|$)'