
在 MySQL 中,DISTINCT 关键字用于从查询结果中去除重复的行,只返回唯一的数据。它通常用在 SELECT 语句中,作用于一个或多个字段。
1. 对单个字段去重
如果你只想获取某个字段的唯一值,可以在字段前加上 DISTINCT。语法:
SELECT DISTINCT 字段名 FROM 表名;示例:
假设有一张名为
users的表,其中
city字段有重复数据: SELECT DISTINCT city FROM users;
这将返回所有不重复的城市名称。
2. 对多个字段组合去重
DISTINCT 也可以作用于多个字段,表示去除这些字段组合后的重复记录。语法:
SELECT DISTINCT 字段1, 字段2 FROM 表名;示例:
查询不同城市和性别的组合:
CPWEB企业网站管理系统(以下称CPWEB)是一个基于PHP+Mysql架构的企业网站管理系统。CPWEB 采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,面向大中型站点提供重量级企业网站建设解决方案。CPWEB企业网站管理系统 2.2 Beta 测试版本,仅供测试,不建议使用在正式项目中,否则发生任何的后果自负。
只有当 city 和 gender 都相同时,才会被视为重复并被去除。
3. 结合 WHERE 条件使用
你可以将 DISTINCT 和 WHERE 一起使用,先筛选再去重。示例:
SELECT DISTINCT city FROM users WHERE age > 25;获取年龄大于 25 的用户所在的所有不重复城市。
4. 注意事项
- DISTINCT 会作用于其后所有的字段组合,不是单独对某一个字段生效。- NULL 值也会被当作一个有效值参与去重,多个 NULL 会被视为相同。
- 在性能上,DISTINCT 可能会影响查询速度,尤其是数据量大时,建议在相关字段上建立索引。
- 如果需要统计去重后的数量,可以结合 COUNT 使用:SELECT COUNT(DISTINCT city) FROM users;
这将返回不重复城市的总数。
基本上就这些。DISTINCT 是一个简单但非常实用的功能,适合快速提取唯一值。使用时注意字段选择和性能影响即可。









