【发布时间】:2010-10-09 13:16:05
【问题描述】:
如果我有一张桌子
CREATE TABLE users (
id int(10) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL,
profession varchar(255) NOT NULL,
employer varchar(255) NOT NULL,
PRIMARY KEY (id)
)
我想获取profession 字段的所有唯一值,什么会更快(或推荐):
SELECT DISTINCT u.profession FROM users u
或
SELECT u.profession FROM users u GROUP BY u.profession
?
【问题讨论】:
-
您可以在提出问题后尽快进行测试。令人恼火的是,几乎不可能构建一个 DISTINCT 优于 GROUP BY 的场景——这很烦人,因为这显然不是 GROUP BY 的目的。但是,GROUP BY 可能会产生误导性结果,我认为这是避免它的充分理由。
-
还有另一个答案不同的副本。见MySql - Distinct vs Group By
-
如果您想通过运行查询来测量 DISTINCT 和 GROUP BY 之间的时间差,请参阅here。
标签: mysql sql database group-by distinct