如何在 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)
广告