zoukankan      html  css  js  c++  java
  • Mysql 精确查询是否字段中包含某个字符串

    想到是否包含,就想起来in,like查询了,先说一下这俩的区别,这是表字段和数据

    Like查询

    首先可能用的最多的LIKE 模糊查询,这样的数据不太精确,如果姓名有 “西贝小小凤1,西贝小小凤2” 这样的也会查出来,数据不太准确

    select * from table where field like '%西贝小小凤%'

    查询结果

     总结:Like模糊查询,对字符没有特殊限制,但是查询不精确

    IN查询  

    select * from table where field in('西贝小小凤','西贝','小小凤')

     查询结果:

     总结:in查询,必须完全匹配,字段里面包含字符串也不可以

    find_in_set查询

    最后大佬出马,find_in_set,这个比较特殊,数据库保存的格式必须是以","分割的,查询比较精确

    总结:find_in_set 是精确查询,字段值以英文”,”分隔

    我最近用哪个UNION ALL多个表连接查询数据,发现在每条sql里面写find_in_set不管用,最后发现需要这么写才行

    select * from (
        select a.`id` id,a.`power` power from table1 a  
        UNION ALL
        select b.`id` id,b.`power` power  from table2 b  
        UNION ALL
        select c.`id` id,c.`power` power  from table3 c  
    ) t WHERE find_in_set('西贝小小凤', t.power);

    要这么用哈,总觉得自己会MySQL,但是很多东西好像都不会啊啊啊啊啊啊,生活的变数太多,珍惜现在!!

  • 相关阅读:
    html5学习笔记2——新元素
    html5学习笔记——基础
    html学习笔记之2——多媒体
    Python调试打印错误信息
    Python随机字符串验证码
    js传递数组
    js上传图片并预览
    JS获取当前日期、比较日期大小
    nrm管理npm源
    使用Git Subtree在多个项目中共用同一个子项目
  • 原文地址:https://www.cnblogs.com/xbxxf/p/13298886.html
Copyright © 2011-2022 走看看