DISTINCT关键字理解

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

  1. 对单个数据进行去重时:
select distinct name from members;
--这意味着从members表中取出去重后的name值
  1. 对多个字段进行去重时:
select distinct name,age from members;
--这意味着从members表中过滤掉name + age相同的值
--同样意味着,distinct这个关键字不能在同时查询两个及以上字段的时候,只过滤一个字段,而考虑其他的字段
  1. 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的总数
  1. distinct用在所有字段之前:
select distinct name,age from members;
--这种情况是对的
select  name,distinct age from members;
--这种MySQL中会报语法错误
  1. 如果想对两个字段中的一个去重,而另外一个不去重的替代方法:
select name,age from members where name in (select distinct name from members);
--这种子查询可以对两个字段中的一个去重,而另外一个不去重,效率较低
  1. 代替DISTINCT作用的其他方法举例:
1.group by 代替。select name from members group by name;
2.
定义字段的时候用unique声明唯一值
发布了292 篇原创文章 · 获赞 73 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43777983/article/details/104435667