如何在 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+ 视图

开启你的 职业生涯

完成课程以获得认证

开始
广告