Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den MySQL-Fehler Nr. 1140: „Mischung von GROUP-Spalten'?
MySQL-Fehler Nr. 1140: Verständnis des Problems „Mischung von Gruppenspalten“
Der MySQL-Fehler Nr. 1140, „Mischung von Gruppenspalten ( „MIN(), MAX(), COUNT(), ...) ohne GROUP-Spalten ist unzulässig, wenn es keine GROUP BY-Klausel gibt“, erscheint, wenn Sie versuchen, Daten zu aggregieren (z. B. mit Funktionen wie COUNT()), ohne die Ergebnisse zu gruppieren. Dies kann auftreten, wenn die SQL-Abfrage Aggregatfunktionen und nicht aggregierte Spalten in der SELECT-Klausel enthält und eine GROUP BY-Klausel fehlt.
Problembeschreibung:
Die Die folgende SQL-Abfrage veranschaulicht dieses Problem:
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') ORDER BY node_data_field_update_date_field_update_date_value DESC
Das Ausführen dieser Abfrage mit der auf dem Server aktivierten Einstellung „NUR_FULL_GROUP_BY“ führt zu dem Fehlermeldung:
#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause`
Lösung:
Um dieses Problem zu beheben, muss man entweder die Einstellung ONLY_FULL_GROUP_BY deaktivieren oder einen Gruppierungsvorgang in der SQL-Abfrage erzwingen.
only_full_group_by = 0
SELECT COUNT(node.nid), node.nid AS nid, node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value FROM node node LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid WHERE node.type IN ('update') GROUP BY node.nid ORDER BY node_data_field_update_date_field_update_date_value DESC
Durch die Anwendung einer dieser Lösungen können Sie den Fehler „Mischen von GROUP-Spalten“ umgehen und die aggregierten Daten erfolgreich abrufen.
Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler Nr. 1140: „Mischung von GROUP-Spalten'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!