如何在MySQL字段中的CSV字符串中找到一个数字(例如“8”)而不查找包含该数字的数字(例如“18”或“81”)?
例如:
somecolumn
= 8,14,18
somecolumn
= 4,5,8,13
somecolumn
= 18,81,82,88
我需要#1和#2出现true
而#3出现false
。我该怎么做
SELECT *
FROM sometable
WHERE somecolumn REGEXP '(what here?)';
答案 0 :(得分:3)
使用find_in_set
select find_in_set('8', '18,81,82,88');
--> zero
select find_in_set('8', '8,14,18');
--> 1
select find_in_set('8', '4,5,8,13');
--> 3
所以,
select * from your_table
where find_in_set('8', your_col)<>0;
PS:规范化您的数据以避免将来出现问题