union all在mysql中的用法是什么

mysql中,union all的用法是“select語句1 union all select語句2…”,union all能夠把來自多個select語句的結果組合到一個結果集中,并把所有的記錄返回,這樣的效率會高于union。

union all在mysql中的用法是什么

本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

union all在mysql中的用法是什么

1.mysql? ?union? 語法

mysql? ?union 用于把來自多個select? 語句的結果組合到一個結果集合中。語法為:

select??column,......from?table1 union?[all] select??column,......?from?table2 ...

在多個select? 語句中,對應的列應該具有相同的字段屬性,且第一個select 語句中被使用的字段名稱也被用于結果的字段名稱。

1.1 union? 與 union all 的區別

當使用union? 時,mysql 會把結果集中重復的記錄刪掉,而使用union? all ,mysql 會把所有的記錄返回,且效率高于union 。

2. mysql union? 用法示例

union 常用與數據類似的兩張或多張表查詢,如不同的數據分類表,或者是數據歷史表等,下面是用于測試的兩張表;

union all在mysql中的用法是什么

2.1使用 UNION 查詢

查詢兩張表中的文章 id 號及標題,并去掉重復記錄:

SELECT?aid,title?FROM?article?UNION?SELECT?bid,title?FROM?blog

返回查詢結果如下:

union all在mysql中的用法是什么

2.2.UNION 查詢結果說明

重復記錄是指查詢中各個字段完全重復的記錄,如上例,若 title 一樣但 id 號不一樣算作不同記錄。

第一個 SELECT 語句中被使用的字段名稱也被用于結果的字段名稱,如上例的 aid。

各 SELECT 語句字段名稱可以不同,但字段屬性必須一致。

3.使用 UNION ALL 查詢

查詢兩張表中的文章 id 號及標題,并返回所有記錄:

SELECT?aid,title?FROM?article?UNION?ALL?SELECT?bid,title?FROM?blog

返回查詢結果如下:

union all在mysql中的用法是什么

顯然,使用 UNION ALL 的時候,只是單純的把各個查詢組合到一起而不會去判斷數據是否重復。因此,當確定查詢結果中不會有重復數據或者不需要去掉重復數據的時候,應當使用 UNION ALL 以提高查詢效率。

推薦學習:mysql視頻教程

以上就是union all在

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享