sql中and和or的优先级问题
看一个例子,数据表如下:
现在需要查询年龄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的优先级问题相关推荐
- sql中and和or的优先级
首先and的优先级大于or,通俗理解其实or查询其实会把条件分为左右两边来查. 如 SELECT * FROM USER WHERE ID = 1 AND STATUS = 2 OR STATUS = ...
- Sql Server中and和or的优先级问题
背景 前几天在给徒弟验收第一遍机房收费系统的时候,对于"组合查询"这一块,如果把三行查询内容输满的话,就会出错误,两行没有问题,经过第二遍验收后来和徒弟一同探讨这个问题,找到了出错 ...
- SQL中 and or优先级问题
转自:点击打开链接 SQL中 and or优先级问题 刚刚在项目中遇到这样一个问题,SQL语句如下: select * from LOAN_BACK_LIBRARY where LIBRARY_ID= ...
- COLLATE oracle,Sql 中Collate用法
今天查询sqlite的时候需要不区分大小写,查了下文档,需要使用collate nocase.顺便学习下collate的用法. collate在sql中是用来定义排序规则的.排序规则其实就是当比较两个 ...
- sql中变量用法_SQL变量:基础和用法
sql中变量用法 In this article, we will learn the notions and usage details of the SQL variable. In SQL Se ...
- 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 ...
- SQL中使用的运算符号详解
文章目录 前言 1. 算术运算符 加法与减法运算符 乘法与除法运算符 求模(求余)运算符 2. 比较运算符 1.等号运算符 2.安全等于运算符 3.不等于运算符 4. 空运算符 5. 非空运算符 6. ...
- Oracle数据库第四课——PL/SQL中的条件控制
知识点: PL/SQL 有 3 种类型的条件控制结构:IF.ELSIF 和 CASE 语句.掌握 IF 语句的用法, 掌握 ELSIF 语句的用法, 理解嵌套 IF 语句的用法, 掌握 CASE 语句 ...
- SQL 中循环、for循环、游标
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...
最新文章
- c语言变量及输入输出
- MyBatis 事务源码分析
- MongoDB 设置权限认证
- margin:auto实现绝对定位元素的水平垂直居中
- 专访福建移动林志云: 5G使能,运营商全面进入数字化转型之路
- 2019.8.21页面功能的实现
- EShop网上商城项目(二)
- 【报告分享】2020年母婴未来消费新趋势报告.pdf(附下载链接)
- Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)
- 2008年IT日历 02
- 104规约(持续更新....)
- 修改sublimeText 文件目录窗口样式
- 双耳节拍 枕头_枕头2-3-0不在
- RESTful API学习笔记
- 音质媲美入耳式耳机,设计时尚续航出色,南卡Runner Pro 4体验
- 论软件自动化测试中 QR_Code 的登录的逻辑
- js 数组转json,json转数组
- java集合面试锦集
- 【Apollo配置中心】Apollo环境配置
- IDV和VDI,桌面虚拟化对比