distinct关键字

distinct关键字作为一种数据去重的手段,有如下使用方法:

1、对单个数据进行去重时:

select distinct name from members;
–这意味着从members表中取出去重后的name值

2、对多个字段进行去重时

select distinct name,age from members;
–这意味着从members表中过滤掉name + age相同的值
–同样意味着,distinct这个关键字不能在同时查询两个及以上字段的时候,只过滤一个字段,而考虑其他的字段

3、distinct与count()函数相结合的方法
组合一:

select count(distinct name) from members;
–这意味着从members表中查询过滤后的name的总数

组合二:

select age,count(distinct name) from members group by age;
–这样也是可以的,distinct只作用于name字段,意味着从按age分组后的每个age对应的去重后name的总数

注意:
distinct用在所有字段之前:
select distinct name,age from members;
–这种情况是对的

select name,distinct age from members;
–这种MySQL中会报语法错误

4、如果想对两个字段中的一个去重,而另外一个不去重的替代方法

select name,age from members where name in (select distinct name from
members);
–这种子查询可以对两个字段中的一个去重,而另外一个不去重,效率较低

代替DISTINCT作用的其他方法举例:
1.用group by 代替。select name from members group by name;
2.定义字段的时候用unique声明唯一值

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值