如何在MySQL字段的CSV字符串中查找数字(例如“ 8”),而又不查找包含该数字的数字(例如“ 18”或“ 81”)?

例如:


somecolumn = 8,14,18中的csvString1
somecolumn = 4,5,8,13中的csvString2
somecolumn = 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/

10-16 13:16
查看更多