MySQL DISTINCT
用法和实例
当使用 SELECT 查询数据时,我们可能会得到一些重复的行。比如学生表中有很多重复的年龄。如果想得到一个唯一的、没有重复记录的结果集,就需要用到 DISTINCT 关键字。
MySQL DISTINCT
用法
在 SELECT 语句中使用 DISTINCT
关键字会返回一个没有重复记录行的结果集。 DISTINCT 的用法如下:
SELECT DISTINCT
columns_list
FROM
table_name
说明:
DISTINCT
关键字位于SELECT
关键字的后面。columns_list
指定要查询的字段列表,也是 DISTINCT 评估记录行是否唯一的字段.columns_list
可以是一个字段,也可以是多个字段。- columns_list 也可以是
*
MySQL DISTINCT
实例
DISTINCT 单个字段
使用 DISTINCT 删除重复的数据,返回唯一的年龄
列表:
SELECT DISTINCT age FROM students
DISTINCT 多个字段
DISTINCT 还可以清除多个字段的重复值。当指定多个字段值时, DISTINCT 使用多个字段组合确定记录行的唯一性。
SELECT DISTINCT age, gender FROM students;
DISTINCT 与 NULL
当 DISTINCT 遇到 NULL 值时,只保留一个 NULL 值。因为 DISTINCT 认为所有的 NULL 值都是相同的,这与字段的类型无关。
SELECT *
FROM (
SELECT NULL
UNION ALL
SELECT NULL
UNION ALL
SELECT NULL
) t;
当使用DISTINCT
之后
SELECT DISTINCT *
FROM (
SELECT NULL
UNION ALL
SELECT NULL
UNION ALL
SELECT NULL
) t;
结论
- DISTINCT 清除 SELECT 结果集中的
重复记录行
。 - DISTINCT 可以用一个
字段或者多个字段
,也可以用 *。 - DISTINCT 多个 NULL 值只保留
一个 NULL 值
。