码迷,mamicode.com
首页 > 数据库 > 详细

【MySQL】FIND_IN_SET、LIKE、IN的区别

时间:2019-08-08 13:07:27      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:查询条件   返回值   分隔符   开始   art   模糊   sdn   使用方法   名称   

现在有张新闻表,里面有新闻名称name字段,有新闻类型type字段,1代表头条,2代表推荐,11代表热点,22代表最新,现在表中有两条记录,存储形式如下,现在的需求是查找头条新闻,及type中包含1的:


LIKE函数

  可以看出,把包含11的数据也查出来了,因为它符合查询条件,包含1,所以使用like就不满足这种需求了

IN()函数

   这样查询的结果也不符合要求

  这样查找的结果不符合预期, in 后面应该是真实的数据,只有 数组 在 in后面能找到才行, 不能用字段代替,这也是一大区别


FIND_IN_SET()函数

  可看出,准确查找出了type包含1的记录,完全符合需求(没有把包含11的记录查询出来)
【作用】

  FIND_IN_SET(‘str,’strList’),查找strList字段中包含str结果,返回null或记录
【使用方法】

    返回值所在字段的索引位置,索引从1开始;如果没有符合的值,返回0
    strList中间的值必须以,分隔
    当某个字段为NULL时,无论FIND_IN_SET()条件是何种查询条件,字段有为NULL的记录都符合

三者区别

    like是广泛的模糊匹配,字符串中没有分隔符
    IN 后面是变量,且是模糊查询
    Find_IN_SET 是精确匹配,字段值必须以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果
---------------------  
版权声明:本文为CSDN博主「王如霜」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wrs120/article/details/81159585

【MySQL】FIND_IN_SET、LIKE、IN的区别

标签:查询条件   返回值   分隔符   开始   art   模糊   sdn   使用方法   名称   

原文地址:https://www.cnblogs.com/fengff/p/11320223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!