mysql distinct 去除重复记录

 

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

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

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

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

©著作权归作者所有:来自51CTO博客作者梧桐深院的原创作品,如需转载,请注明出处,否则将追究法律责任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值