很多表中某些字段的数据存在重复的值,例如 student 表中的 gender 字段,使用SELECT 语句查询 gender 字段,执行结果如下所示:
mysql> select gender from student;
+--------+
| gender |
+--------+
| 男 |
| 男 |
| 男 |
| 女 |
| 女 |
| 男 |
| 男 |
| NULL |
+--------+
8 rows in set (0.01 sec)
从查询结果可以看到,查出的8条记录中有5条记录的 gender 字段值为“男”,两条记录的 gender 字段值为“女”。有时候,出于对数据的分析需求,需要过滤掉查询记录中重复的值,在 SELECT 语句中,可以使用 DISTINCT 关键字来实现这种功能,使用DISTINCT 关键字的 SELECT 语句其语法格式如下:
SELECT DISTINCT 字段名 FROM 表名;
在上面的语法格式中,“字段名”表示要过滤重复记录的字段。
例如,查询 student 表中 gender 字段的值,查询记录不能重复,SQL 语句如下所示:
mysql> SELECT DISTINCT gender FROM student;
+--------+
| gender |
+--------+
| 男 |
| 女 |
| NULL |
+--------+
3 rows in set (0.00 sec)
从查询记录可以看到,这次查询只返回了三条记录的 gender 值,分别为“男”、“女”和“NULL”,不再有重复值。