(一)distinct的使用语法:
select distinct expression[,expression...] from tables [where conditions];
(二)distinct的作用:
在mysql的实际运用场景中,经常会遇到某一字段或多个字段数据重复的情况,当我们需要进行去重处理时,就可以使用distinct。
在使用distinct时需注意一下几点:
- distinct只可以在select中使用。
- 若distinct后只存在1个字段,则仅对该字段进行去重;若distinct后存在多个字段,则对这多个字段的组合进行去重。
- distinct只能在所有字段最前面使用。
(三)distinct具体使用
存在以下学生成绩表student,主键key为(name,subject):
name | subject | high_score |
张三 | 语文 | 85 |
李四 | 数学 | 99 |
李四 | 物理 | 88 |
王五 | 语文 | 85 |
赵六 | 英语 | 100 |
王五 | 语文 | 85 |
1.返回各科最高分
仅对subject进行去重,输出subject和对应hight_score
select distinct subject from student
查询结果:
subject | high_score |
语文 | 85 |
数学 | 99 |
物理 | 88 |
英语 | 100 |
2.去除表中的重复信息,输出所有有效值
对name+subject+high_score进行去重
select distinct name , subject , high_score from student
查询结果:
name | subject | high_score |
张三 | 语文 | 85 |
李四 | 数学 | 99 |
李四 | 物理 | 88 |
王五 | 语文 | 85 |
赵六 | 英语 | 100 |