激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 淺析mysql union和union all

淺析mysql union和union all

2020-08-15 21:47動力節點 Mysql

union 是對數據進行并集操作,不包括重復行,同時進行默認排序而Union all 是對數據進行并集操作,包括重復行,不進行排序,下面給大家詳細介紹mysql union和union all,感興趣的朋友一起看看吧

在數據庫中,UNION和UNION ALL關鍵字都是將兩個結果集合并為一個,但這兩者從使用和效率上來說都有所不同。

MySQL中的UNION

UNION在進行表鏈接后會篩選掉重復的記錄,所以在表鏈接后會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。實際大部分應用中是不會產生重復的記錄,最常見的是過程表與歷史表UNION。如:

?
1
select * from gc_dfys union select * from ls_jg_dfys

這個SQL在運行時先取出兩個表的結果,再用排序空間進行排序刪除重復的記錄,最后返回結果集,如果表數據量大的話可能會導致用磁盤進行排序。 

MySQL中的UNION ALL

而UNION ALL只是簡單的將兩個結果合并后就返回。這樣,如果返回的兩個結果集中有重復的數據,那么返回的結果集就會包含重復的數據了。

從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認合并的兩個結果集中不包含重復的數據的話,那么就使用UNION ALL,如下:

?
1
select * from gc_dfys union all select * from ls_jg_dfys

使用Union,則所有返回的行都是唯一的,如同您已經對整個結果集合使用了DISTINCT

使用Union all,則不會排重,返回所有的行

如果您想使用ORDER BY或LIMIT子句來對全部UNION結果進行分類或限制,則應對單個地SELECT語句加圓括號,并把ORDER BY或LIMIT放到最后一個的后面:

?
1
2
3
4
(SELECT a FROM tbl_name WHERE a=10 AND B=1)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

麻煩一點也可以這么干:

?
1
2
3
select userid from (
select userid from testa union all select userid from testb) t
order by userid limit 0,1;

如果你還想group by,而且還有條件,那么:

?
1
select userid from (select userid from testa union all select userid from testb) t group by userid having count(userid) = 2;

注意:在union的括號后面必須有個別名,否則會報錯

當然了,如果當union的幾個表的數據量很大時,建議還是采用先導出文本,然后用腳本來執行

因為純粹用sql,效率會比較低,而且它會寫臨時文件,如果你的磁盤空間不夠大,就有可能會出錯

?
1
Error writing file '/tmp/MYLsivgK' (Errcode: 28)

總結

以上所述是小編給大家介紹的mysql union和union all,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.sina.com.cn/s/blog_9c6852670102wx89.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 韩国精品视频在线观看 | 免费黄色成人 | 中文字幕一区在线观看视频 | 国产欧美日韩二区 | 日韩精品久久久久久久电影99爱 | 黄色大片免费看 | 精品一区二区三区中文字幕老牛 | 中国黄色一级生活片 | 日本在线视频免费 | 精品亚洲福利一区二区 | 日韩在线毛片 | 爱操av | 久久精品亚洲国产奇米99 | 午夜精品久久久久久中宇 | 天天操综 | 国产正在播放 | 69av导航 | 欧美黑大粗硬毛片视频 | 色奇米| 黄网站色成年大片免费高 | 在线观看免费毛片视频 | 亚洲 综合 欧美 动漫 丝袜图 | 国产中文一区 | 一级黄色毛片a | 日本精品视频一区二区三区四区 | 成人一区二区三区在线 | 国产成人精品无人区一区 | 在线视频观看一区二区 | 亚洲第一成网站 | 精品亚洲在线 | 毛片视频在线免费观看 | 久久久久久久高清 | 中文字幕免费一区 | 国产一国产一级毛片视频在线 | hd性videos意大利复古 | 欧美www | 亚洲无马在线观看 | 日韩在线观看中文字幕 | 亚洲国产精品99 | 欧美性成人 | 爱逼爱操综合网 |