DISTINCT用于去除查询重复行,语法为SELECT DISTINCT列名FROM表名;2. 多字段去重时组合值不可重复;3. 作用于所有选中列,NULL视为相同值;4. 大数据量影响性能,建议建立索引。

在 MySQL 中,DISTINCT 用于去除查询结果中的重复行,只返回唯一的数据。使用起来非常直接,只需要在 SELECT 后加上 DISTINCT 关键字即可。
基本语法
SELECT DISTINCT 列名 FROM 表名;
如果要对多个字段去重,表示这组字段的组合不能重复:
SELECT DISTINCT 列1, 列2 FROM 表名;
单列去重示例
比如有一张用户表 user,其中 city 字段有重复值:
SELECT DISTINCT city FROM user;这条语句会返回所有不重复的城市名称。
多列组合去重
如果你想查“不同城市和年龄段的组合”,可以这样写:
只有当 city 和 age 都相同时,才会被当作重复行去掉。
注意事项
DISTINCT 作用于所有选中的列,不是只针对第一个列。
NULL 值也会被视为一个有效值参与去重,多个 NULL 会被视为相同,最终只保留一个。
在性能方面,DISTINCT 需要排序或哈希操作,数据量大时可能影响速度,建议在相关字段上建立索引。
基本上就这些,用法简单但很实用。










