关于mysql的distinct用法

对于mysql数据库,查询结果会有很多重复数据,如何去重?相信很多人第一反应就是使用distinct关键字。但是对于distinct的细节,却不是很了解。比如,对于下面的user表,去重后后的结果是什么呢?

user_name user_password
笑傲独行侠 123
笑傲独行侠 123
笑傲独行的侠客 123
笑傲独行的侠客 456

1.select distinct user_name from user 查询结果是什么?

  这个最简单,相信大家都知道。把重复列去掉,每一组相同的值都只保留一个结果(两个笑傲独行侠只保留一条,两条笑傲独行的侠客只保留一条,四条数据剩下两条)。

笑傲独行侠
笑傲独行的侠客

 

 

 

2.select distinct user_name,user_password from user 查询结果是什么呢?

有人可能是觉得,distinct放在user_name列前面,就是对该列的结果进行去重,其实不然。distinct是不能针对某一列进行去重的。它只能针对跟在他后面的所有列进行去重。所以查询结果应该是

笑傲独行侠

123

 

笑傲独行的侠客 123
笑傲独行的侠客 456

 

 

 

 

 

即,对于整个查询结果的所有列去重。

posted @ 2021-04-25 14:47  笑傲独行侠  阅读(2811)  评论(0编辑  收藏  举报