mysql中去除重复字段-distinct
今天在进行数据处理的时候需要去除重复的数据,使用distinct十分便捷,所以做一下说明。
- 使用distinct注意事项
- distinct一般用法
- 在统计中使用等其他用法
- 具体问题解决
1、注意事项
使用distinct命令时需要放在查询条件的开头,否则会报错。如果需要查询的项目很多但只针对某一个字段使用distinct的,则可以利用内容拼接的方式来实现。
2、一般用法
以下为使用的基础数据表
id | name | age |
---|---|---|
1 | 张三 | 20 |
2 | 李四 | 21 |
3 | 王五 | 21 |
4 | 赵六 | 20 |
5 | 张三 | 22 |
6 | 李四 | 21 |
--基本查询
SELECT DISTINCT `name` from users;
--显示结果
name
张三
李四
王五
赵六
--多表查询
SELECT DISTINCT name,age FROM users;
--显示结果(此处distinct的条件是name和age两个字段,也就是只有两个都重复了才进行筛选。)
--此处去除了李四 | 21
name | age
张三 | 20
李四 | 21
王五 | 21
赵六 | 20
张三 | 22
3、其他用法
--在count中使用distinct
SELECT count(DISTINCT name,age) FROM users;
--显示结果
5
--如果只处理name字段,但是查询显示name和age,则建议使用GROUP BY命令
--(单用distinct不好实现)
SELECT name, age FROM users GROUP BY name;
--显示结果
name | age
张三 | 20
李四 | 21
王五 | 21
赵六 | 20
--!!注意:如果SQL语句还有limit,order by等条件,必须放在group by后面。