MySQL-Fehler: 'main.users.type' ist nicht in GROUP BY
Die Fehlermeldung, auf die Sie in phpMyAdmin gestoßen sind, weist darauf hin, dass Sie Es fehlt eine Spalte (in diesem Fall Typ) in der GROUP BY-Klausel Ihres Abfrage.
Grund:
MySQL erfordert, dass alle Spalten in der SELECT-Klausel, die keine Aggregatfunktionen sind (z. B. COUNT, SUM), in GROUP BY enthalten sein müssen Klausel. Dadurch wird sichergestellt, dass die Ergebnisse korrekt nach diesen Spalten gruppiert werden.
Fix:
Um den Fehler zu beheben, müssen Sie die fehlende Spalte zur GROUP BY-Klausel hinzufügen :
SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name`, `type`, `language`, `code` ORDER BY `count` DESC LIMIT 0, 25
Hintergrund:
In SQL92 ist dies eine Anforderung dass alle Spalten in der SELECT-Klausel Teil der GROUP BY-Klausel sein müssen. In SQL99 wurde diese Einschränkung gelockert, um Spalten zu ermöglichen, die funktional von der GROUP BY-Klausel abhängig sind. Allerdings lässt MySQL standardmäßig eine Teilgruppe zu, was zu unvorhersehbaren Ergebnissen führen kann.
Um die Konsistenz sicherzustellen, können Sie den @@sql_mode auf „ONLY_FULL_GROUP_BY“ setzen:
SET @@sql_mode='ONLY_FULL_GROUP_BY';
Mit Bei dieser Einstellung führen alle teilweisen GROUP BY-Abfragen zu einem Fehler, der Sie dazu zwingt, alle erforderlichen Spalten in die Klausel aufzunehmen.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „main.users.type' ist nicht in GROUP BY aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!