如何在 MySQL 中使用 union 和 order by 子句?


Union 是 MySQL 中的一個運算子型別。我們可以使用 ORDER BY 篩選記錄。如果您想要從多個表或單個表的多個行集中選擇一行接一行地顯示,可作為單個結果集使用 UNION。

我們來看一個示例。

建立第一個表

mysql> create table UnionDemo1
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.59 sec)

在第一個表中插入記錄。

mysql> insert into UnionDemo1 values(1),(4),(10);
Query OK, 3 rows affected (0.21 sec)
Records: 3  Duplicates: 0  Warnings: 0

顯示所有記錄。

mysql> select *from UnionDemo1;

以下輸出顯示所有記錄。

+------+
| id   |
+------+
|    1 |
|    4 |
|   10 |
+------+
3 rows in set (0.00 sec)

我們建立第二個表。

mysql> create table UnionDemo2
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.54 sec)

在第二個表中插入記錄。

mysql> insert into UnionDemo2 values(2),(3),(5),(6),(7),(8),(9);
Query OK, 7 rows affected (0.21 sec)
Records: 7  Duplicates: 0  Warnings: 0

顯示所有記錄。

mysql> select *from UnionDemo2;

這是輸出。

+------+
| id   |
+------+
|    2 |
|    3 |
|    5 |
|    6 |
|    7 |
|    8 |
|    9 |
+------+
7 rows in set (0.00 sec)

我們現在來看看按順序應用 UNION 的查詢。

mysql> select id from UnionDemo1
   -> union
   -> select id from UnionDemo2
   -> order by id desc;

以下輸出。

+------+
| id   |
+------+
|   10 |
|    9 |
|    8 |
|    7 |
|    6 |
|    5 |
|    4 |
|    3 |
|    2 |
|    1 |
+------+
10 rows in set (0.05 sec)

更新於: 30-Jul-2019

6K+ 檢視

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告