查询结果去重

查询结果去重

去除单列的重复结果

有的时候我们查询某个列的数据时会有一些重复的结果,比如我们查询一下student_info表的学院信息:

 

mysql> SELECT department FROM student_info;

+-----------------+

| department |

+-----------------+

| 计算机学院 |

| 计算机学院 |

| 计算机学院 |

| 计算机学院 |

| 航天学院 |

| 航天学院 |

+-----------------+

6 rows in set (0.00 sec)

因为表里有6条记录,所以给我们返回了6条结果。但是其实好多都是重复的结果,如果我们想去除重复结果的话,可以将DISTINCT放在被查询的列前边,就是这样:

 

SELECT DISTINCT 列名 FROM 表名;

我们对学院信息做一下去重处理:

 

mysql> SELECT DISTINCT department FROM student_info;

+-----------------+

| department |

+-----------------+

| 计算机学院 |

| 航天学院 |

+-----------------+

2 rows in set (0.00 sec)

看到结果集中就只剩下不重复的信息了。

 

去除多列的重复结果

对于查询多列的情况,两条结果重复的意思是:两条结果的每一个列中的值都相同。比如查询学院和专业信息:

 

mysql> SELECT department, major FROM student_info;

+-----------------+--------------------------+

| department | major |

+-----------------+--------------------------+

| 计算机学院 | 计算机科学与工程 |

| 计算机学院 | 计算机科学与工程 |

| 计算机学院 | 软件工程 |

| 计算机学院 | 软件工程 |

| 航天学院 | 飞行器设计 |

| 航天学院 | 电子信息 |

+-----------------+--------------------------+

6 rows in set (0.00 sec)

查询结果中第1、2行记录中的department和major列都相同,所以这两条记录就是重复的,同理,第3、4行也是重复的。如果我们想对多列查询的结果去重的话,可以直接把DISTINCT放在被查询的列的最前边:

 

SELECT DISTINCT 列名1, 列名2, ... 列名n FROM 表名;

aaf31e312d65462981ff67ce17e3b036.jpg

 

如果有想买长截图这本电子书的可以点击以下链接,作者是《mysql是怎样运行的》的作者小孩子

《mysql是怎样使用的》,适合入门

《mysql是怎样运行的》,适合进阶

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值