我有一个包含以下值的表:
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
我是新手,正规表达可以任何人帮助。感谢
答案 0 :(得分:15)
REGEXP '(^|,)(1|3|6|7|11)(,|$)'
将匹配包含序号1,3,6,7,11
的一个数字的所有值。
您不应使用一列来保存多个值。规范化数据!
编辑回答