Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
在(CONCAT())中,不在MySQL中返回逗号分隔字符串的结果_Mysql_Concat - Fatal编程技术网

在(CONCAT())中,不在MySQL中返回逗号分隔字符串的结果

在(CONCAT())中,不在MySQL中返回逗号分隔字符串的结果,mysql,concat,Mysql,Concat,以下面的查询为例: SELECT COUNT(1) FROM tableA INNER JOIN tableB ON tableA.ID = tableB.pid WHERE tableA.foo IN ('1234') AND tableB.bar = 555 上面的查询返回1个结果 现在,由于我存储的数据的性质(逗号分隔字符串[ie:jkdjif,3-I-d,343]),我尝试用以下内容替换上面的IN(),以用引号括起数据: WHERE tableA.foo IN (CONCAT("'",

以下面的查询为例:

SELECT COUNT(1)
FROM tableA
INNER JOIN tableB
ON tableA.ID = tableB.pid
WHERE tableA.foo IN ('1234')
AND tableB.bar = 555
上面的查询返回1个结果

现在,由于我存储的数据的性质(逗号分隔字符串[ie:jkdjif,3-I-d,343]),我尝试用以下内容替换上面的IN(),以用引号括起数据:

WHERE tableA.foo IN (CONCAT("'",REPLACE('1234',",","','"),"'"))
但是,这将返回0个结果

它看起来与IN()中的CONCAT()有关,因为我已将其缩减为IN(CONCAT(“”,643290“”)

为什么会这样?我哪里出错了?

您可以使用:


可能您需要使用值来执行数组,而不是逗号分隔的字符串需要一个值列表(或结果集)。您向它传递一个字符串。当然,它不起作用。您只传递一个参数来替换()-3。当您
选择(CONCAT(“”,REPLACE('1234'),“,”,“,”,“,”,“,”)时会发生什么)
?@symcbean抱歉,我的SO问题中有一个输入错误。更正。
SELECT COUNT(1)
FROM tableA INNER JOIN tableB ON tableA.ID = tableB.pid
WHERE FIND_IN_SET(tableA.foo, 'jkdjif,3-i-d,343') > 0
AND tableB.bar = 555