MYSQL中UNION和UNION ALL的区别有哪些?
2021/6/7 2:21:08
本文主要是介绍MYSQL中UNION和UNION ALL的区别有哪些?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在mysql中如何想要对两个结果集进行合并操作,可以使用UNION和UNION ALL,如果只是想要去除掉重复的记录,属于UNION ALL 即可,但是如何想要除掉没有重复行数据,就要使用Union。本文详细向大家介绍mysql中UNION和UNION ALL的区别。
1、具体作用不同
UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)
UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
2、使用不同
使用UNION关键字是将所有查询结果合并到一起,然后去除相同的记录。
使用UNION ALL关键字则是将所有的结果合并到一起。
3、效率不同
UNION会对结果排序和去重复 在73万条数据测试中 花费11.84秒查询.
UNION ALL 则不会排序也不会去重复 再73万数据测试中 花费 4.34秒查询
4、排重不同
Union:对两个结果集进行合并操作,多表连接后会去除掉重复的记录没有重复行数据.
UNION ALL :对两个结果集进行合并操作,多表连接后会去除掉重复的记录
总体上说,union all要比union快很多,如果没有排重的需要,建议直接使用union all;如果需要排重,则使用union。
案例
取得一个班的男生和女生的数据,并且男生2个女生3个总共五个数据
select id,grade_id,sex from (select id,grade_id,sex from oc_user_students where (birthday >= '2011-06-05' or birthday <= '2016-06-05' ) and class_id=0 and sex=1 and status=1 order by id limit 0,2) as t1 union select id,grade_id,sex from (select id,grade_id,sex from oc_user_students where (birthday>= '2011-06-05' or birthday <= '2016-06-05' ) and class_id=0 and sex=2 and status=1 order by id limit 0,3) as t2 order by id asc limit 0,5View Code
高性能MySQL(第3版).pdf
这篇关于MYSQL中UNION和UNION ALL的区别有哪些?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程