MySQL-使用正则表达式排除在组中
我正在运行一个查询,该查询返回一个类别和子类别数组,这些类别和子类别由I、[digit]或c、[digit]表示 我已经设法让连接工作起来,以替换I,这样我就可以在PHP中对另一个表运行查询,其中I表示为一个简单的id 现在,我想排除结果中带有c、[x位数]的任何内容 我已经设法通过regexPal(很棒的工具!)让regex工作,但似乎无法在MySQL中工作 原始查询MySQL-使用正则表达式排除在组中,mysql,Mysql,我正在运行一个查询,该查询返回一个类别和子类别数组,这些类别和子类别由I、[digit]或c、[digit]表示 我已经设法让连接工作起来,以替换I,这样我就可以在PHP中对另一个表运行查询,其中I表示为一个简单的id 现在,我想排除结果中带有c、[x位数]的任何内容 我已经设法通过regexPal(很棒的工具!)让regex工作,但似乎无法在MySQL中工作 原始查询 select id, name, (Group_concat(replace(replace(arrange, 'i,',
select id, name, (Group_concat(replace(replace(arrange, 'i,', ''), '|', ','))) As
Products from cats
where id = '19'
其输出为:
c,4331,c,290,c,292,c,282,c,284,c,285,c,4230,c,4228,c,4229,c,298,c,299,c,395,c,396,c,393,c,288,78,81
现在,我将这一行添加到查询中:
and arrange not regexp "c,[0-9]{1,10},"
预计产量为78,81。但我仍然得到了如上所述的全部输出
提前感谢您的帮助。我通过preg_replace的PHP函数修复了这个问题,而不是在 我将查询结果传递给preg_replace,然后它执行正确的正则表达式查找以排除字符串中的匹配元素 $prodsarray 2=preg_replace(“/c,[0-9]{0,10},/”,“”,$prodsarray) 事情是这样的:
NEW STRING=preg_replace(正则表达式、替换文本、查找字符串)让产品不是REGEXP“c、[0-9]{1,10},”不幸的是,我认为这与RegEx和MySQL的格式有关,因为它要么返回0要么返回所有结果。A(n)sqlfiddle和/或适当的DDL可能很有用。这对我来说是一个新工具!这有帮助吗?