关于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

 

 

 

 

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM