mysql中 or的使用方法,mysql条件查询中与or同时使用时的注意事项!!

2023-11-14

我们在日常的crud开发中,经常会遇到查询数据不是预期效果的问题,但是有感觉自己的查询语句没什么问题呀?怎么会出错呢? 今天我也中招了,就很烦,sql如下:

在查询语句中我们有一个条件是year=2021,但是查询结果还包含了2020的数据,这无疑是错误的

SELECT

sa.`year`,

ss.status_name,

ss2.status_name,

ss3.status_name

FROM

sr_task st

LEFT JOIN table1 sa ON sa.task_id = st.id

LEFT JOIN table2 ss ON ss.id = sa.submit_status_id

LEFT JOIN table2 ss2 ON ss2.id = sa.accept_status_id

LEFT JOIN table2 ss3 ON ss3.id = sa.current_status_id

LEFT JOIN table3 sp ON st.principal_id = sp.id

LEFT JOIN tables4 su ON st.assume_unit_id = su.id

WHERE

st.del_flag = 0

AND sa.del_flag = 0

AND sp.del_flag = 0

AND su.del_flag = 0

AND is_annals = 1

AND sa.YEAR = 2021

AND ss.id = 5

OR ss2.id = 5

OR ss3.id = 5

查询结果是:

9e5ff16c4aa9bc195282581bbde83d05.png

之后百度查询后说是and的优先级比or的高,他是先选出了符合and条件的,然后,or操作选出了符合or里面条件的,取了并集 , 所以导致了查询结果和预期结果不符的情况

解决方法如下:

使用括号吧and之后的or条件括起来,就可以解决这个问题

SELECT

sa.`year`,

ss.status_name,

ss2.status_name,

ss3.status_name

FROM

sr_task st

LEFT JOIN table1 sa ON sa.task_id = st.id

LEFT JOIN table2 ss ON ss.id = sa.submit_status_id

LEFT JOIN table2 ss2 ON ss2.id = sa.accept_status_id

LEFT JOIN table2 ss3 ON ss3.id = sa.current_status_id

LEFT JOIN table3 sp ON st.principal_id = sp.id

LEFT JOIN tables4 su ON st.assume_unit_id = su.id

WHERE

st.del_flag = 0

AND sa.del_flag = 0

AND sp.del_flag = 0

AND su.del_flag = 0

AND is_annals = 1

AND sa.YEAR = 2021

AND (ss.id = 5

OR ss2.id = 5

OR ss3.id = 5)

查询结果如下:

82cd8d540b9f3b997870a4db82b1164e.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql中 or的使用方法,mysql条件查询中与or同时使用时的注意事项!! 的相关文章

  • Anaconda3最新换国内源教程,中科大源或者清华源

    环境 ubuntu16 04 anaconda python 3 7 中科大源 conda config add channels https mirrors ustc edu cn anaconda pkgs main conda con
  • esp32 完整开发指南_【安信可ESP32语音开发板专题①】ESP32-A1S音频开发板之离线语音识别控制LED灯

    本博客学习由 安信可开源团队 潜心编写 做ESP32 A1S离线语音初步入门技术交流分享 如有不完善之处 请留言 本团队及时更改 一 前言 离线语音 顾名思义 在不连网络的状态下 产品能识别语音指令并执行相应的控制输出 安信可基于乐鑫ESP
  • @SpringQueryMap注解 feign的get传参方式

    SpringQueryMap注解 feign的get传参方式 问题 启动服务 传入参数测试 发现feign远程调用的方法入参失败 排查发现是feign接口调用controller方法的时候就没进来参 原因 spring cloud项目使用f
  • armeabi-v7a、arm64-v8a、armeabi、x86、x86_64的区别

    1 armeabi v7a 第七代及以上的ARM处理器 2011年以后生产的大部分Android设备都使用 2 arm64 v8a 第8代 64位ARM处理器 很少设备 三星GalaxyS6是其中之一 3 armeabi 第5代 第6代的A
  • go-zero 基础 -- 进阶指南

    版本 1 4 0 1 目录拆分 1 1 系统结构分析 在上文提到的商城系统中 每个系统在对外 http 提供服务的同时 也会提供数据给其他子系统进行数据访问的接口 rpc 因此每个子系统可以拆分成一个服务 而且对外提供了两种访问该系统的方式
  • FreeRTOS之软件定时器

    FreeRTOS之软件定时器 声明 本人按照正点原子的FreeRTOS例程进行学习的 欢迎各位大佬指责和批评 谢谢 include sys h include delay h include usart h include led h in
  • WIN7打开或关闭Windows功能后空白问题解决

    问题描述 打开或关闭Windows功能界面 一片空白 问题如下 解决方法 参考百度出来的几个办法 都无法解决 可能在下的系统的注册表问题比较严重 参考另一个方法 完美解决 windows7打开或关闭Windows功能后空白的问题 下载win
  • Python指南——类

    http blog csdn net ccat article details 8364 译者 至此Python指南的正文部分就全部译完了 感谢Clover姐姐 Sickkid 尹伟铭 面面 珂珂等朋友在翻译过程中给我提供的帮助和支持 特别
  • 用nodejs到底做什么?

    如何解决学了之后无法解决问题的状态 前端的内容很多 有html css javascript三个大模块 但是如何能去解决问题 核心还是根据你的兴趣 或者你根据一个你能看到的实际项目好好研究一下代码 了解其中运作的机制 然后尝试着修改一下代码
  • EduCoder_web实训作业--CSS样式规则

    由于时间关系 我只写第四题啦 2020 12 31 已将缺失关卡补全 第一关 B D C A B 第二关 h1 style font family 楷体 text align center line height 2 静夜思 h1 h2 s
  • Pandas数据处理与分析

    文章目录 前言 1 导入数据 2 审阅数据 3 数据预处理 4 数据分析 5 pandas数据可视化 这里不再过多的讲解pandas可视化 因为pandas中的数据可视化已经可以满足我们大部分的要求了 也就省下了我们很多自己使用 如 mat
  • flume实验

    1 上传flume ng 1 5 0 cdh5 3 6 tar gz 至 opt modules cdh 并解压 2 编辑 conf flume env sh export JAVA HOME usr java jdk1 7 0 79 3
  • 串口通信与编程01:串口基础知识

    串口通信与编程01 串口基础知识 串口是串行接口 serial port 的简称 也称为串行通信接口或COM接口 串口通信是指采用串行通信协议 serial communication 在一条信号线上将数据一个比特一个比特地逐位进行传输的通
  • Nginx学习笔记3【老男孩教育】

    Nginx模块使用 autoindex网站列表功能 下载功能子配置文件 修改nginx子配置文件 限制模块 认证模块 创建用户名和密码 状态模块 location功能 Goaccess日志分析 模块总结
  • 华为OD机试真题 Java 实现【最小的调整次数】【2023Q1 100分】

    一 题目描述 有一个特异性的双端队列 该队列可以从头部或尾部添加数据 但是只能从头部移出数据 小A依次执行2n个指令往队列中添加数据和移出数据 其中n个指令是添加数据 可能从头部添加 也可能从尾部添加 依次添加1到n n个指令是移出数据 现
  • 小学期-中期总结报告

    实训中期总结报告 一 人文 本次实训采取讲练结合的方式 四次讲座分别介绍了实训整体要求安排 开发环境与流程 实验板的硬件电路 单片机原理 随着进度循序渐进 在实践方面 参观贴片整体流程 自己动手焊接电路板 下载实例进行学习 各个案例按照I
  • 使用 npm link 测试本地编写的 node 模块 / 引入全局安装的 node 模块

    目录 1 npm install VS npm install g 2 npm install g 的本质 映射脚本的作用 3 如何测试使用未发布的 npm 包 npm link 原理 4 link 到项目 4 1 全局 link 4 2
  • 2023最新51单片机毕设选题推荐

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 4 最后 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下
  • 常见排序算法的时间复杂度、空间复杂度、稳定性比较

    常见排序算法的时间空间复杂度 稳定性比较 一 排序算法比较 注 1 归并排序可以通过手摇算法将空间复杂度降到O 1 但是时间复杂度会提高 2 基数排序时间复杂度为O N M 其中N为数据个数 M为数据位数 二 辅助记忆 1 时间复杂度记忆

随机推荐