Heim > Datenbank > MySQL-Tutorial > MySQL-Fehler „ist nicht in GROUP BY': Wie behebt man Probleme mit der vollständigen Gruppierung?

MySQL-Fehler „ist nicht in GROUP BY': Wie behebt man Probleme mit der vollständigen Gruppierung?

Patricia Arquette
Freigeben: 2024-12-05 12:21:10
Original
686 Leute haben es durchsucht

MySQL

Gruppieren nach-Fehler in MySQL: „'ist nicht in GROUP BY'“

Wenn in MySQL der Fehler „ist nicht in GROUP BY“ auftritt, wird dies angezeigt weist darauf hin, dass zwischen den in der SELECT-Klausel ausgewählten Spalten und denen in der GROUP BY-Klausel eine Diskrepanz besteht.

Verstehen der Fehler

In den angegebenen Beispielen gruppiert die erste Abfrage (SELECT count(DISTINCT name)) korrekt nach einer einzelnen Spalte (Name), während die zweite Abfrage (SELECT name, type, language, code`) dies versucht Rufen Sie mehr Spalten ab, als in der GROUP BY-Klausel enthalten sind.

Lösung

Um diesen Fehler zu beheben, ist es wichtig, eine „vollständige Gruppierung nach“ sicherzustellen, in der alle Spalten enthalten sind selected muss auch Teil der GROUP BY-Klausel sein. Dadurch wird sichergestellt, dass das Ergebnis eine korrekte Zusammenfassung für jede Gruppe darstellt.

Für die gegebene Abfrage wäre die korrekte Syntax:

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

SQL-Standards und MySQL-Verhalten

SQL92 erfordert, dass alle Spalten in der SELECT-Klausel Teil der GROUP BY-Klausel sind. SQL99 lockert diese Einschränkung leicht und lässt Spalten zu, die funktional von der GROUP BY-Klausel abhängig sind.

Das Standardverhalten von MySQL ermöglicht „partielles Gruppieren nach“, was bedeutet, dass Spalten ausgewählt werden können, die nicht in der GROUP BY-Klausel enthalten sind. Dies kann jedoch zu nicht deterministischen Ergebnissen führen. Um dies zu verhindern, können Sie die Variable @@sql_mode auf „ONLY_FULL_GROUP_BY“ setzen. Dadurch wird MySQL gezwungen, sich je nach Anforderung an die vollständige Gruppe zu halten.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler „ist nicht in GROUP BY': Wie behebt man Probleme mit der vollständigen Gruppierung?. 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