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

时间:2014-02-17 08:41:52

标签: mysql mysqli phpmyadmin

比较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,但无法使其适用于我的情况

2 个答案:

答案 0 :(得分:0)

根据您的问题,您可以使用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]'

OR

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

答案 1 :(得分:0)

请注意,我并不认真提倡这个解决方案......

SELECT * FROM my_table WHERE FIND_IN_SET(5,catid) OR FIND_IN_SET(2,catid);