比较MySQL列中以逗号分隔的字符串,其中列也以逗号分隔

例如:

Id name catid
1  abc   4,5,2
2  bcd   5
3  efg   9,1,7

SELECT * FROM TABLE WHERE catid IN (2,5,6)


在这里2,5,6我必须与catid值进行比较以获得结果。
我需要使用任何FIND_IN_SET来帮助正确解决问题的方法,但无法使其适用于我的情况

最佳答案

根据您的问题,可以使用LIKE运算符代替IN

SELECT * FROM testchintan  WHERE CONCAT(',',catid,',') LIKE '%,5,%'
OR CONCAT(',',catid,',') LIKE '%,2,%' OR CONCAT(',',catid,',') LIKE '%,6,%'


或者您可以使用REGEXP

SELECT *
  FROM testchintan
 WHERE catid REGEXP '[4,9,5]'


要么

SELECT *
  FROM testchintan
 WHERE
 REPLACE(catid,',','|') REGEXP '[9,7]'

关于mysql - 比较MySQL列中以逗号分隔的字符串,其中列也以逗号分隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21824312/

10-12 03:06