欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

union和union all的小区别

程序员文章站 2022-04-25 19:33:35
...

最近接的SQL小任务,快被搞崩溃了.也看出了自身的很多问题.对SQL的浅显理解.等等吧.

1.首先用union或者是union all首先要保证:select出的字段相同,顺序相同,类别相同

2.union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复.

对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,Union All不会去除重复记录。

3.对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。

4.

效率:
UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。
UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。

5.经常,反正我这边数据库是以前别人设计的.表表之间关联的时候,出现最多的问题就是:[Err] 1271 - Illegal mix of collations for operation 'UNION'解决这个问题:别想着去改数据库字符集,小点的数据库你改一下,也要十几分钟,大行数据库你可以回卡一天.

我是建立中间临时表:create table t1 as select c1,c2 from t2.然后把t1的建表语句拿出来,删除掉字段的字符集属性,使用默认的字符集,把t3的表的数据也插入到这张临时表.

相关标签: mysql