Sie müssen eine vollständige Gruppe haben bis:
SELECT `name`, `type`, `language`, `code`
FROM `users`
WHERE `verified` = '1'
GROUP BY `name`, `type`, `language`, `code`
ORDER BY `count` DESC LIMIT 0, 25
SQL92 erfordert, dass alle Spalten (außer Aggregate) in der select-Klausel Teil der group by-Klausel sind. SQL99 lockert diese Einschränkung etwas und gibt an, dass alle Spalten in der select-Klausel funktional von der group by-Klausel abhängig sein müssen. MySQL erlaubt standardmäßig eine teilweise Gruppierung nach und dies kann zu nicht deterministischen Antworten führen, Beispiel:
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 |
+------+------+
Dh ein zufälliges y wird für die Gruppe x ausgewählt. Man kann dieses Verhalten verhindern, indem man @@sql_mode:
setztset @@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