用于查找CSV编号的MySQL Regexp

时间:2011-01-14 10:06:21

标签: mysql regex

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

例如:

  1. somecolumn = 8,14,18
  2. 中的csvString1
  3. somecolumn = 4,5,8,13
  4. 中的csvString2
  5. somecolumn = 18,81,82,88
  6. 中的csvString2

    我需要#1和#2出现true而#3出现false。我该怎么做

    SELECT * FROM sometable WHERE somecolumn REGEXP '(what here?)';

1 个答案:

答案 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:规范化您的数据以避免将来出现问题