zoukankan      html  css  js  c++  java
  • 【MySQL】FIND_IN_SET、LIKE、IN的区别

    现在有张新闻表,里面有新闻名称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

  • 相关阅读:
    Python
    TERSUS笔记116-删除数据操作
    TERSUS笔记115-修改数据操作
    TERSUS笔记114-表格分页操作
    TERSUS笔记113-查询数据操作
    TERSUS笔记111-上传图片在列表中显示
    TERSUS笔记110-增加保存验证数据操作
    TERSUS笔记103-本地开发测试mysql数据库连接
    TERSUS笔记102-CSS样式和icon图标设置说明
    TERSUS笔记101-常用元件和操作说明
  • 原文地址:https://www.cnblogs.com/fengff/p/11320223.html
Copyright © 2011-2022 走看看