当前位置:网站首页>关于sql语句中union和or的区别
关于sql语句中union和or的区别
2022-08-09 14:59:00 【why_so_hot】
先看两者定义:
union
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
即我们在查询的时候需要保证查询的字段,字段类型同时顺序都需要保持一致。
or
or用于连接两个条件,只要满足其中一个就输出一条记录
区别
- 光从定义上其实就能看出,union是可以连接两个以上的SELECT语句的,即可在不同的表内进行查询,or的对象则是一张表内
- union会对结果进行排序去重,而or不会,or会直接把最后的结果拿出来取并集(大部分情况下其实两者结果都一致)
- 这点是最大区别,对于每张表,每次查询只会用一个索引,例如下面这条判断:where age > 25 or money > 100,如果该表选择了age作为索引,那么在判断money > 100时就只能进行全表扫描,选择money时同理。但是union可以连接两个查询,每个查询可以用不同的索引,因此可以避开这个问题。
总结
union虽然可以避免一些问题,但是因为涉及到排序去重,所以效率也会下降一下,但一般数据量较大时union都是要优于or的,可以根据实际业务情况来进行选择。但如果or两边的查询条件是同一个字段时就可以直接选择or,毕竟省去了union的排序去重。如where age > 25 or age is NULL
边栏推荐
- 永磁同步电机电位器调速及数码管实时显示
- 堆(heap)系列_0x04:堆的内部结构(_HEAP=_HEAP_SEGMENT+_HEAP_ENTRY)
- 【力扣】207. 课程表
- Vim实用技巧_3.可视模式和命令模式
- 堆(heap)系列_0x02:堆的前世今生(WinDbg+Visual Studio汇编)
- 【Likou】1995. Statistical special quadruple
- PE format series _0x05: output table and relocation table (.reloc)
- 【Postgraduate Work Weekly】(The third week)
- ASCII码表
- CTF在线加解密以及常用工具
猜你喜欢

层次分析法

PE格式系列_0x05:输出表和重定位表(.reloc)

Time series analysis

永磁同步电机电位器调速及数码管实时显示

Face recognition sample code analysis (2) - face recognition analysis

Vim practical skills_4. Manage multiple files (open + split + save + netrw)
![[Deep Learning] SVM solves the linear inseparable situation (8)](/img/3c/199f3ff3fb0546bcd7f70bd71030a0.png)
[Deep Learning] SVM solves the linear inseparable situation (8)

Vim实用技巧_2.普通模式和插入模式

蓝桥杯嵌入式第四届省赛做题笔记

时间序列分析
随机推荐
【The sword refers to Offer II 091. Paint the house】
【力扣】207. 课程表
flask局域网访问失败解决方法(使用pycharm运行代码的一定要看)
SQLMap常用命令介绍
杭州富阳科目三考试
【工具使用】Keil5软件使用-基础使用篇
hugging face tutorial - Chinese translation - fine-tuning a pre-trained model
Cloud Models and Logistic Regression - Applications of MATLAB in Mathematical Modeling (2nd Edition)
DOS命令
堆(heap)系列_0x02:堆的前世今生(WinDbg+Visual Studio汇编)
UDP 基本通信框架
Stetman读peper小记:Defense-Resistant Backdoor Attacks Against DeepNeural Networks in Outsourced Cloud
蓝桥杯嵌入式第十三届模拟题做题笔记
蒙特卡罗 Monte Carlo 模拟
多元回归分析
ASCII码表
【Postgraduate Work Weekly】(Week 7)
【力扣】662. 二叉树最大宽度
AlexNet pytorch实现
R-CNN Fast R-CNN Faster R-CNN总结