当前位置:网站首页>关于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
边栏推荐
- 图解转置卷积原理
- 【力扣】55. 跳跃游戏
- 解决pyqt5 DLL load failed: 找不到指定的程序的问题
- Postgraduate Work Weekly
- flask局域网访问失败解决方法(使用pycharm运行代码的一定要看)
- matlab讲解与使用【持续更新中ing】
- Face recognition sample code analysis (2) - face recognition analysis
- tensor转cv::Mat(即CHW转HWC)原理含C#代码实现
- [Paper reading] LIME: Low-light Image Enhancement via Illumination Map Estimation (the most complete notes)
- 【Likou】1995. Statistical special quadruple
猜你喜欢
随机推荐
hugging face tutorial-Chinese translation-pipeline-based reasoning
CTF online encryption and decryption and common tools
Detailed Explanation of Software Secure Memory Area
ConvNext笔记
堆(heap)系列_0x04:堆的内部结构(_HEAP=_HEAP_SEGMENT+_HEAP_ENTRY)
Hold face (hugging face) tutorial - Chinese translation - create a custom framework
DOS命令
tensor转cv::Mat(即CHW转HWC)原理含C#代码实现
Faster R-CNN 论文总结
蓝桥杯嵌入式备赛
hugging face tutorial - Chinese translation - model summary
PatchEmbed代码讲解记录
蓝桥杯嵌入式第十三届模拟题做题笔记
Data Fitting Methods Application of MATLAB in Mathematical Modeling (Second Edition)
堆(heap)系列_0x06:NT全局标志和gflags.exe一页纸
Visual Studio 2019新手使用(安装并创建第一个程序详细教程)
[Paper reading] LIME: Low-light Image Enhancement via Illumination Map Estimation (the most complete notes)
Postgraduate Work Weekly
【工具使用】Modscan32软件使用详解
Stetman的读paper小记:Deep Learning Backdoor Survey (Shaofeng Li, Shiqing Ma, Minhui Xue)








