基本语法
SELECT DISTINCT <字段名> FROM <表名>;
使用场景
1. 单字段去重
SELECT DISTINCT age FROM student;
结果:
age
18
19
20
说明:返回 age 字段的所有不同值
2. 多字段组合去重
SELECT DISTINCT name, age FROM student;
结果:
name | age |
---|---|
zhangsan | 18 |
lisi | 19 |
wangwu | 18 |
zhaoliu | 18 |
wangwu | 20 |
说明:只有当 name 和 age 的组合完全相同时才会被去重
3. 所有字段去重
SELECT DISTINCT * FROM student;
结果:返回表中所有记录,因为 id 和 stuno 字段是唯一的
结合 COUNT 统计不重复记录数
SELECT COUNT(DISTINCT name, age) FROM student;
结果:
COUNT(DISTINCT name,age)
5
注意事项
1. 位置要求:DISTINCT 必须紧跟在 SELECT 之后
正确:`SELECT DISTINCT name, age FROM student;`
错误:`SELECT name, DISTINCT age FROM student;`
2. NULL 值处理:DISTINCT 将 NULL 视为相同的值,只返回一个
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程