mysql distinct 去除重复记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql distinct 去除重复记录相关的知识,希望对你有一定的参考价值。

虽然distinct是sql的一个语法,并不属于mysql,但此处以mysql举例。
用了那么多年的distinct,居然一直都是错的。一直以为distinct是去除重复的字段,原来它是去除重复的记录。

重复的记录是指distinct后所有的字段都相同的记录。

举例:假设在一个多店版的商城系统里,有一个记录销售记录的表,记录着每个店铺的每一笔销售额。如下:
技术分享图片
运行下面的查询,然后分别对比结果,我们就不难发现,distinct是去除重复的记录。
技术分享图片

第一条查询 select distinct uid from sale_log; 筛选出了有销售额的店主。
第二条查询 select distinct uid,store_id from sale_log; 筛选出了有销售额的店主的不同店铺。可以很明显的看出,此条查询返回的结果是过滤掉了 uid 和 store_id 都一样的记录,而不是我以前想当然的认为,只要有 distinct 关键字修饰的字段,都不会出现重复值。
最后,再次强调,distinct 是作用于整条查询,而不是作用于紧跟其后的字段。

以上是关于mysql distinct 去除重复记录的主要内容,如果未能解决你的问题,请参考以下文章

mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留

mongodb去除重复的数据

SQL里 distinct 和 union 的区别?

mysql 查询怎么去除重复列

Distinct和Group by去除重复字段记录

mysql查询时如何去除重复数据