您需要有一个完整的小组:
SELECt `name`, `type`, `language`, `pre` FROM `users` WHERe `verified` = '1' GROUP BY `name`, `type`, `language`, `pre` ORDER BY `count` DESC LIMIT 0, 25
SQL92要求select子句中的所有列(聚合除外)都是group
by子句的一部分。SQL99稍微放松了此限制,并指出select子句中的所有列在功能上必须依赖于group
by子句。MySQL默认情况下允许部分分组依据,这可能会产生不确定的答案,例如:
create table t (x int, y int);insert into t (x,y) values (1,1),(1,2),(1,3);select x,y from t group by x;+------+------+| x | y |+------+------+| 1 | 1 |+------+------+
即,为组x选择了随机y。可以通过设置@@ sql_mode来防止此行为:
set @@sql_mode='ONLY_FULL_GROUP_BY';select x,y from t group by x; ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY



