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!