关于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..

那应该怎样操作..

先调用数据再计算差集可以吗???????

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',并且其后不跟随数字的字符串