Mysql基础教程(11):DISTINCT

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 值
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁拾舞

你的鼓励将是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值