如何在MySQL字段的CSV字符串中查找数字(例如“ 8”),而又不查找包含该数字的数字(例如“ 18”或“ 81”)?
例如:somecolumn
= 8,14,18
中的csvString1somecolumn
= 4,5,8,13
中的csvString2somecolumn
= 18,81,82,88
中的csvString2
我需要让#1和#2出现true
,并且#3出现false
。我怎么做SELECT *FROM sometableWHERE somecolumn REGEXP '(what here?)';
最佳答案
使用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:规范化您的数据以避免将来出现问题
关于mysql - MySQL Regexp用于查找CSV编号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4689905/