当前位置: 首页 > news >正文

我们来学mysql -- 同时使用 AND 和 OR 查询错误(填坑篇)

AND 和 OR 一同使用问题

  • 现象
  • 分析
  • 处理
  • 扩展

现象

  • 业务上在“锁定”当前零件所在出口国的所有零件时,出现其他国家零件
    在这里插入图片描述

  • 问题定位
    在这里插入图片描述
    在这里插入图片描述

分析

  • or 切断操作符之间的连续性,从union角度分析

  • where k1 = 'Td621' and k1 = 'Vda96' or k3 = 'P00009'等同

     select * from ucoding where k1 = 'Td621' and k1 = 'Vda96' union select * from ucoding where k3 = 'P00009'
    

    在这里插入图片描述

  • where k1 = 'Td621' or k3 = 'P00009' and k1 = 'Vda96' 等同

     select * from ucoding where k1 = 'Td621'union select * from ucoding where k3 = 'P00009' and k1 = 'Vda96'
    

    在这里插入图片描述

处理

  • 看 and 连接的条件在业务上应该和哪些条件结合
  • 如果还是看不出来,拆分成 union检查

扩展

  • 面试中…,面试官问,OR如何造成索引失效
  • 镇定自若中…balabala,HR说等通知
  • 回家查看到大佬的博客,有如下发现
    • 索引不失效
      在这里插入图片描述

    • 索引失效
      在这里插入图片描述

    • 索引再次生效
      在这里插入图片描述

  • 😆->🤣😂->😭关于type字段含义请查看 访问方法(原理篇)
http://www.lryc.cn/news/479829.html

相关文章:

  • 关于Websocket
  • vue2 pdf 链接地址打开
  • c# 动态lambda实现二级过滤(多种参数类型)
  • 34.Redis事务
  • 认识类和对象
  • 解决echarts桑基图为0时tooltip不显示的问题
  • vue3 基础笔记
  • Oracle 第30章:最佳实践与案例研究
  • 第九周预习报告
  • 【分享】这篇教程助力你成为 JavaScript 糕手!(四)
  • 双亲委派模型的破坏
  • Android关机流程知多少?
  • 深入理解指针end(总结篇)
  • C# 程序暂停的两种方式
  • 【LeetCode】【算法】160.相交链表
  • 光伏破局 引领能源革命
  • Jenkins声明式Pipeline流水线语法示例
  • 互联网技术净土?原生鸿蒙开启全新技术征程
  • 关于Django 模型字段 `choices`自定义数据类型的枚举——补充
  • CAP理论的延申--BASE理论
  • 【傻呱呱】phpMyAdmin怎样给特定用户授权特定数据库权限?
  • 『VUE』21. 组件注册(详细图文注释)
  • 如何产看SQL 查询的执行时间
  • 计算机网络——路由器构成
  • 架构师之路-学渣到学霸历程-48
  • HappyChart——一款简单好用的专业绘图软件
  • 【Linux】进程信号全攻略(二)
  • redis用法(二)
  • Python-利用os,tkinter库编写一个伪恶意程序文件(Pro版)
  • Oracle视频基础1.4.4练习