看一个例子,数据表如下:

现在需要查询年龄30岁,地址是北京或者上海的用户信息。

看sql-1:

SELECT * FROM users WHERE age=30 AND address='北京' OR address='上海'

查询结果为:

看sql-2:SELECT * FROM users WHERE age=30 AND (address='北京' OR address='上海')

查询结果为:

总结:

第一个查询结果是不对的,我们要查的是年龄30,地址是北京或者上海的用户,第一个查询结果中出现了年龄40的用户。出现问题的原因是and和or的运算优先级问题。AND的运算优先级高于OR,所以实际执行的是:

  • age=30 AND address='北京' :年龄30的北京用户(结果的第1条记录) ;
  • OR address='上海' :或者上海的用户(结果的第2、3条记录),于是出现了上述结果。

解决办法:

通过加入()来调整他们的优先级,让OR先执行,再进行AND。其实和我们小时候学的四则运算法则(优先级)是一样的。

sql中and和or的优先级问题相关推荐

  1. sql中and和or的优先级

    首先and的优先级大于or,通俗理解其实or查询其实会把条件分为左右两边来查. 如 SELECT * FROM USER WHERE ID = 1 AND STATUS = 2 OR STATUS = ...

  2. Sql Server中and和or的优先级问题

    背景 前几天在给徒弟验收第一遍机房收费系统的时候,对于"组合查询"这一块,如果把三行查询内容输满的话,就会出错误,两行没有问题,经过第二遍验收后来和徒弟一同探讨这个问题,找到了出错 ...

  3. SQL中 and or优先级问题

    转自:点击打开链接 SQL中 and or优先级问题 刚刚在项目中遇到这样一个问题,SQL语句如下: select * from LOAN_BACK_LIBRARY where LIBRARY_ID= ...

  4. COLLATE oracle,Sql 中Collate用法

    今天查询sqlite的时候需要不区分大小写,查了下文档,需要使用collate nocase.顺便学习下collate的用法. collate在sql中是用来定义排序规则的.排序规则其实就是当比较两个 ...

  5. sql中变量用法_SQL变量:基础和用法

    sql中变量用法 In this article, we will learn the notions and usage details of the SQL variable. In SQL Se ...

  6. SQL中的or与in的区别

    SQL中的or与in的区别 or与in一样的案例(条件里只有a时) a in (1,2,3) a = 1 or a = 2 or a = 3 or与in不一样的案例(条件里不止a时) where a ...

  7. SQL中使用的运算符号详解

    文章目录 前言 1. 算术运算符 加法与减法运算符 乘法与除法运算符 求模(求余)运算符 2. 比较运算符 1.等号运算符 2.安全等于运算符 3.不等于运算符 4. 空运算符 5. 非空运算符 6. ...

  8. Oracle数据库第四课——PL/SQL中的条件控制

    知识点: PL/SQL 有 3 种类型的条件控制结构:IF.ELSIF 和 CASE 语句.掌握 IF 语句的用法, 掌握 ELSIF 语句的用法, 理解嵌套 IF 语句的用法, 掌握 CASE 语句 ...

  9. SQL 中循环、for循环、游标

    我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...

最新文章

  1. c语言变量及输入输出
  2. MyBatis 事务源码分析
  3. MongoDB 设置权限认证
  4. margin:auto实现绝对定位元素的水平垂直居中
  5. 专访福建移动林志云: 5G使能,运营商全面进入数字化转型之路
  6. 2019.8.21页面功能的实现
  7. EShop网上商城项目(二)
  8. 【报告分享】2020年母婴未来消费新趋势报告.pdf(附下载链接)
  9. Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)
  10. 2008年IT日历 02
  11. 104规约(持续更新....)
  12. 修改sublimeText 文件目录窗口样式
  13. 双耳节拍 枕头_枕头2-3-0不在
  14. RESTful API学习笔记
  15. 音质媲美入耳式耳机,设计时尚续航出色,南卡Runner Pro 4体验
  16. 论软件自动化测试中 QR_Code 的登录的逻辑
  17. js 数组转json,json转数组
  18. java集合面试锦集
  19. 【Apollo配置中心】Apollo环境配置
  20. IDV和VDI,桌面虚拟化对比

热门文章

  1. Practical C++ Programming电子书pdf下载
  2. 数字音乐作品条形码怎么弄?
  3. 联合证券这么看新钢钒
  4. PDF文件转换成jpg图片,快来试试这几个方法
  5. PHP入党积极分子服务平台 计算机毕设源码12485
  6. eventBus在uve中的使用
  7. 【算法与数据结构】JS基础——数组
  8. 近视眼的病因有一定遗传倾向
  9. 科大讯飞杯F题:思维模拟 排列计算
  10. 图形学中透视投影矩阵推导