Heim >Datenbank >MySQL-Tutorial >MySQL-Fehler „ist nicht in GROUP BY': Wie behebt man Probleme mit der vollständigen Gruppierung?
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.
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.
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
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!