mysql中去重,distinct和group by的区别

Posted on 2020-07-12 21:51  野生特朗普  阅读(498)  评论(0)    收藏  举报

原文地址:https://www.cnblogs.com/shiluoliming/p/6604407.html

 

        例如有如下表user:

        

 

 

distinct会过滤掉它后面每个字段都重复的记录

    用distinct来返回不重复的用户名:select distinct name from user;,结果为:

        

    用distinct来返回不重复的name和id:select distinct name,id from user;,结果为:

        

    distinct name,id 这样的写法,mysql 会认为要过滤掉name和id两个字段都重复的记录。

    如果sql这样写:select id,distinct name from user,这样mysql会报错,因为distinct必须放在要查询字段的开头。

 

 

group by则可以在要查询的多个字段中,针对其中一个字段去重 :

        select id,name from user group by name;