mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不是非常准确.那就试试mysql中的find_in_set函数吧. SELECT find_in_set('a','a,b,c,d') as test
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 查询的结
表 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可以进行这样的查询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