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

fd3cxomn  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(285)

执行以下查询:

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,"'")) 为什么会这样?我哪里出错了?

fzsnzjdm

fzsnzjdm1#

你可以用 FIND_IN_SET 取而代之的是:

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

相关问题