如何在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和ORDER BY的查询。
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)
阅读更多:MySQL 教程