2011-01-14 42 views
0

如何查找MySQL字段中的CSV字符串中的數字(例如「8」),但沒有找到包含該數字的數字(例如「18」或「81」)?用於查找CSV編號的MySQL正則表達式

例如:

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

我需要有#1和#2來up true和#3來了false。如何做到這一點

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

回答

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:正常化您的數據,以避免將來問題

+0

+1的方式更好解決方案比正則表達式 –

+0

相同不等於(不小於,不大於) – ajreal