Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-使用正则表达式排除在组中_Mysql - Fatal编程技术网

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,',

我正在运行一个查询,该查询返回一个类别和子类别数组,这些类别和子类别由I、[digit]或c、[digit]表示

我已经设法让连接工作起来,以替换I,这样我就可以在PHP中对另一个表运行查询,其中I表示为一个简单的id

现在,我想排除结果中带有c、[x位数]的任何内容

我已经设法通过regexPal(很棒的工具!)让regex工作,但似乎无法在MySQL中工作

原始查询

 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可能很有用。这对我来说是一个新工具!这有帮助吗?