比较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/