关于PHP MYSQL的一个查询语句
来源:百度知道 编辑:UC知道 时间:2024/05/16 05:45:00
假设在表`count`中,有两个字段,`id`和`count`
有如下三条数据
id=1
count=1,2,3,4,5,6,7,8,9
id=2
count=12,23,53,65
id=3
count=2,12,23,45
我现在要搜索出count包含2的所有数据,即id=1和id=3的
应该怎样写..
注意了,`count`这个字段记录的是一个字符串,就像"a,b,c,d,e"这样,是一个以逗号分开一个个数字的字符传,是一个整体,而不是数组什么的,所以不要说用一个count=2哦..
我试过用count LIKE '%$count%'这样的方法,
不过就会把有2的都拿出来,就例如ID=2都拿出来,里面有一个12..
那应该怎样操作..
先调用数据再计算差集可以吗???????
有如下三条数据
id=1
count=1,2,3,4,5,6,7,8,9
id=2
count=12,23,53,65
id=3
count=2,12,23,45
我现在要搜索出count包含2的所有数据,即id=1和id=3的
应该怎样写..
注意了,`count`这个字段记录的是一个字符串,就像"a,b,c,d,e"这样,是一个以逗号分开一个个数字的字符传,是一个整体,而不是数组什么的,所以不要说用一个count=2哦..
我试过用count LIKE '%$count%'这样的方法,
不过就会把有2的都拿出来,就例如ID=2都拿出来,里面有一个12..
那应该怎样操作..
先调用数据再计算差集可以吗???????
SELECT * FROM count WHERE count LIKE '2,%' OR count LIKE '%,2' OR count LIKE '%,2,%'
估计用正则表达式应该是可以的,mysql支持正则的。
比较变态的是先全取出来在分析,数据量不大问题不大
select * from count where count regexp '(^2|,2)[^0-9]';
利用正则,匹配以'2'开头或者包含',2',并且其后不跟随数字的字符串