Heim > Datenbank > MySQL-Tutorial > Warum gibt MySQL den Fehler „main.users.type' ist nicht in GROUP BY aus?

Warum gibt MySQL den Fehler „main.users.type' ist nicht in GROUP BY aus?

Patricia Arquette
Freigeben: 2024-12-08 00:20:15
Original
601 Leute haben es durchsucht

Why is MySQL Throwing a 'main.users.type' Isn't in GROUP BY Error?

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
Nach dem Login kopieren

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';
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage