查询语法

ads

 

顾名思义,合并查询结果就是将多个查询的结果一块儿进行展示,但是需要注意的是,查询出来的列数和数据类型必须相同。

初识UNION

union不使用关键字ALL,执行的时候删除重复的记录,所有返回的行都是唯一的;

union使用关键字ALL,执行的时候不删除重复的记录,也不对接过进行自动排序。

基本语法如下:

select colume,...from table1 union [ALL] select colume,...from teble2;

运用union

PS:这里只是举例子,不纠结为什么要这样子用,以及有没有必要这样子查哈,只是为了表明这个方法的使用。

我们先看下现有ceshi1表的数据;

mysql> select * from ceshi1;
+----+
| id |
+----+
| 1 |
| 2 |
| 10 |
| 20 |
| 30 |
+----+
5 rows in set (0.00 sec)

mysql>

然后我们来查下,大于10的数据;

mysql> select id from ceshi1 where id > 10;
+----+
| id |
+----+
| 20 |
| 30 |
+----+
2 rows in set (0.00 sec)

mysql>

我们再查下小于30的数据;

mysql> select id from ceshi1 where id < 30;
+----+
| id |
+----+
| 1 |
| 2 |
| 10 |
| 20 |
+----+
4 rows in set (0.00 sec)

mysql>

好,现在我们使用union的方式将结果汇总到一块儿去,此时不使用关键字ALL

mysql> select id from ceshi1 where id > 10 union select id from ceshi1 where id < 30;
+----+
| id |
+----+
| 20 |
| 30 |
| 1 |
| 2 |
| 10 |
+----+
5 rows in set (0.00 sec)

mysql>

可以看到结果合二为一了,对吧,如果看的不明确,那么我们使用union的方法,再加上关键字ALL看看效果;

mysql> select id from ceshi1 where id > 10 union all select id from ceshi1 where id < 30;
+----+
| id |
+----+
| 20 |
| 30 |
| 1 |
| 2 |
| 10 |
| 20 |
+----+
6 rows in set (0.00 sec)

mysql>

可以看到union使用关键字ALL的时候,结果并没有合并,那么结果就出现了两个20

至此,本文结束。 

长按以识别二维码关注运维家~
微信号:yunweijia0909


往期推荐

mysql查询语法大杂烩,看了这篇就够了

mysql中还有窗口函数?这是什么东西?

mysql函数汇总之日期和时间函数


最后编辑于:2024/1/18 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com