表 table的结构如下: id title 1 12,21 2 21,32 3 45,21,78 4 221,45,74 5 34,421,121 6 52,21,321 现在用sql语句查出来字段里包含21的所有记录怎么办? select * from table where title=21 or title like ’%,21’ or title like ’%,21,%’ or title like ’21,%’ 这样查看看有问题吗? 肯定这样会把421 221 这样信息查出来的!
MySQL- IN , FIND_IN_SET , LIKE SELECT * FROM test where area IN (1, 2, 3); SELECT * FROM test where FIND_IN_SET('1', area); SELECT * FROM test where area LIKE '%,1,%'; LIKE 是广泛的模糊匹配,字符串中没有分隔符Find_IN_SET 是精确匹配,字段值以英文”,”分隔Find_IN_SET 查询的结果要小于 LIKE 查询的结
Mysql-in查询问题 标签(空格分隔): mysql 问题:mysql用in语法查询出来的数据少了好多! 我的实际情况: 数据表: content字段记录着一些选项的id,多个选项用逗号隔开,比如要查询content字段中有29的记录. in 查询: select * from t_investigate_record where investigate_id = 10001 and answer_id = 6 and content in (29) order by id find_in_
在数据库中新建一张测试表t_user,包含三个字段'id','name','grilfriend',字段很容易看出,这是记录一个人的女朋友的表,注意这里的‘firlfriend’字段可以是多个人名,之间用逗号分开,如‘杨幂01,杨幂02’:这样的数据存储我们也经常见到. CREATE TABLE `t_user` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) CHARACTER SET utf8 DEFAULT NULL, `girlfriend` ) C
原来以为mysql可以进行这样的查询select id, list, name from table where 'daodao' IN (list); (一)注:1. table含有三个字段id:int, list:varchar(255), name:varchar(255) 实际上这样是不行的,这样只有当'daodao'是list中的第一个元素(我测试的时候貌似是第一个也是不行的,只有当list字段的值等于daodao时才是对的)时,查询才有效,否则都的不到结果,即使'dao