如何在MySQL中使用union和order by子句?
Union是MySQL中的一种运算符。我们可以对此使用ORDERBY来过滤记录。如果要从多个表中选择一个接一个的行,或者从一个表中选择多个行的集合作为一个结果集,请使用UNION。
让我们来看一个例子。
创建第一个表
mysql> create table UnionDemo1 -> ( -> id int -> );
将记录插入第一个表。
mysql> insert into UnionDemo1 values(1),(4),(10); 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 -> );
将记录插入第二个表。
mysql> insert into UnionDemo2 values(2),(3),(5),(6),(7),(8),(9); 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与Orderby一起应用的查询。
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)