1、注意事项
使用distinct命令时需要放在查询条件的开头,否则会报错。如果需要查询的项目很多但只针对某一个字段使用distinct的,则可以利用内容拼接的方式来实现。
--基本查询
SELECT DISTINCT `name` from users;
--显示结果
name
张三
李四
王五
赵六
--多表查询
SELECT DISTINCT name,age FROM users;
--显示结果(此处distinct的条件是name和age两个字段,也就是只有两个都重复了才进行筛选。)
--此处去除了李四 | 21
name | age
张三 | 20
李四 | 21
王五 | 21
赵六 | 20
张三 | 22
--在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后面。