union和union all的区别

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。 

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; 

Union All:对两个结果集进行并集操作,包括重复行,不进行排序(保持原本sql的排序进行组合);

使用union All

(select 
* from 
message
where 
m_id < 20)
UNION ALL(
select 
* from 
message
where 
m_id < 20 
ORDER BY m_id DESC)

结果是重复,并且是按照没有排序的情况。

select 
* from 
message
where 
m_id < 20 
UNION (
select 
* from 
message
where 
m_id < 20 
ORDER BY m_id DESC)
原文地址:https://www.cnblogs.com/sunxun/p/5664785.html