MySql REGEXP匹配两个逗号分隔的字符串

时间:2013-05-25 06:53:25

标签: mysql regex

我有一个包含以下值的表:

id    |    value      |
-----------------------
1     | 1,2,5,8,12,20 |    
2     | 11,25,26,28   |    
-----------------------

现在我想搜索一些以逗号分隔的ID,例如来自上面的值列的'1,3,6,7,11',例如

SELECT id FROM tbl_name  
WHERE value REGEXP '*some reg exp goes here containing 1,3,6,7,11*'
LIMIT 1,0;

SELECT id FROM tbl_name  
WHERE value REGEXP '*some reg exp goes here containing 3,6,27,15*'
LIMIT 1,0;

以上第一个查询应该返回1而第二个应该返回NULL

我是新手,正规表达可以任何人帮助。感谢

1 个答案:

答案 0 :(得分:15)

REGEXP '(^|,)(1|3|6|7|11)(,|$)'

将匹配包含序号1,3,6,7,11的一个数字的所有值。

您不应使用一列来保存多个值。规范化数据!

编辑回答