| 用途 | 结果集去重 |
|---|---|
| 语法 | SELECT DISTINCT 列1[, 列2] … |
| 替代 | GROUP BY / 子查询 EXISTS |
用法示例
用法示例
SELECT DISTINCT user_id FROM orders;
SELECT DISTINCT city, status FROM orders;
SELECT COUNT(DISTINCT user_id) AS uv FROM orders WHERE created_at >= '2026-10-01';EXISTS 改写(大表更快)
EXISTS 改写(大表更快)
SELECT u.id FROM users u
WHERE EXISTS (SELECT 1 FROM orders o WHERE o.user_id = u.id);COUNT(DISTINCT col) 很吃资源;如果 col 上有索引,优化器可以利用索引做松散扫描,否则会建临时表。