本文介绍了MySQL RegEx:从正则表达式中得到错误“空(子)表达式"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一列 participants
,其中包含一个类似于 "99005|99001|99002|99001999|99004"
的值,它们是用户登录.
I have a column participants
which contains a value like "99005|99001|99002|99001999|99004"
which are user logins.
我真正想要的是匹配"99001"
而不匹配"99001999"
.
What exactly I want is to match "99001"
without matching "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
我做错了什么?
推荐答案
您可以使用单词边界.
regexp '[[:<:]]99001[[:>:]]'
或
regexp '(^|[|])99001([|]|$)'
这篇关于MySQL RegEx:从正则表达式中得到错误“空(子)表达式"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!