比较逗号分隔的字符串在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,但不能让它根据您的问题,我的情况
比较逗号分隔的字符串在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,但不能让它根据您的问题,我的情况
工作,你可以用这样的运营商,而不是在
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]'
请注意,我不是认真提倡这个解决方案...
SELECT * FROM my_table WHERE FIND_IN_SET(5,catid) OR FIND_IN_SET(2,catid);
你不应该在一个列中存储逗号分隔值。这个查询现在是个问题的事实是数据库设计错误的直接结果 –
@Ozone是catid的数据类型吗? –
@ChintanGor varchar 255.其中值存储为1,2,3 – Ozone