答案:DISTINCT用于去除查询重复行,支持单多列去重及与WHERE结合使用,但大数据量下可能影响性能。

在MySQL中,DISTINCT 是一个非常实用的关键字,用于从查询结果中去除重复的行,只返回唯一的数据。它通常用在 SELECT 语句中,帮助我们快速获取去重后的数据集合。
基本语法
DISTINCT 的基本写法如下:
SELECT DISTINCT column_name FROM table_name;这条语句会从指定列中提取所有不重复的值。例如,假设有一张名为 orders 的表,其中包含多个客户的姓名,你想查看有哪些不同的客户,可以这样写:
SELECT DISTINCT customer_name FROM orders;多列去重
DISTINCT 不仅支持单列去重,还可以作用于多列。当你对多个字段使用 DISTINCT 时,数据库会将这些字段的组合视为整体,只有当所有字段的值完全相同时,才会被视为重复。
SELECT DISTINCT column1, column2 FROM table_name;比如查询不同客户的姓名和城市组合:
SELECT DISTINCT customer_name, city FROM customers;这样返回的结果中,每一条记录的(customer_name, city)组合都是唯一的。
结合 WHERE 条件使用
你可以在使用 DISTINCT 的同时添加 WHERE 子句,对去重前的数据进行筛选。
SELECT DISTINCT status FROM orders WHERE amount > 1000;这条语句会找出金额大于1000的所有订单中,不同的状态值。
注意事项与性能提示
- DISTINCT 会在内部进行排序或哈希操作来识别重复项,因此在大数据量下可能影响查询性能。
- 如果列中包含 NULL 值,DISTINCT 会将多个 NULL 视为相同,只保留一个。
- 若需要更复杂的去重逻辑(如保留某条完整记录),建议使用 GROUP BY 或窗口函数替代。
基本上就这些。DISTINCT 是一个简单但强大的工具,适合快速提取唯一值。只要注意使用场景和性能影响,就能高效地完成去重任务。










