Heim > Datenbank > MySQL-Tutorial > Wie kann der MySQL-Fehler „Mixing of GROUP Columns' (Fehler Nr. 1140) behoben werden?

Wie kann der MySQL-Fehler „Mixing of GROUP Columns' (Fehler Nr. 1140) behoben werden?

Linda Hamilton
Freigeben: 2024-12-27 16:13:09
Original
895 Leute haben es durchsucht

How to Solve MySQL's

Fehler „Vermischung von GROUP-Spalten“ in MySQL beheben

Der Fehler #1140 in MySQL, der auf eine „Vermischung von GROUP-Spalten“ hinweist, tritt auf, wenn eine Abfrage nicht aggregierte (nicht-GROUP) Spalten in der SELECT-Klausel enthält, aber auch aggregierte Spalten ohne eine GROUP BY-Klausel einschließt. Um dieses Problem anzugehen, gibt es zwei Hauptansätze:

1. Deaktivieren von ONLY_FULL_GROUP_BY:

MySQL verfügt über eine Konfigurationseinstellung namens ONLY_FULL_GROUP_BY, die standardmäßig auf ON steht. Diese Einstellung erzwingt eine strikte GROUP BY-Semantik und erfordert, dass alle nicht aggregierten Spalten in der SELECT-Klausel in die GROUP BY-Liste aufgenommen werden. Um diese Einstellung zu deaktivieren, führen Sie die folgende Abfrage aus:

SET SESSION ONLY_FULL_GROUP_BY = OFF;
Nach dem Login kopieren

Deaktivieren Sie ONLY_FULL_GROUP_BY, damit die Abfrage ohne Änderung ausgeführt werden kann.

2. Hinzufügen von GROUP BY-Spalten:

Alternativ können Sie die Abfrage so ändern, dass alle ausgewählten Felder in die GROUP BY-Klausel einbezogen werden. Dadurch wird sichergestellt, dass alle nicht aggregierten Spalten „gruppiert“ werden und dass die Ergebnismenge der strengen GROUP BY-Semantik entspricht:

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, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
Nach dem Login kopieren

Das Ändern der Abfrage, sodass sie die GROUP BY-Klausel enthält, löst das Problem durch explizite Gruppierung des Ergebnisses Wird für alle nicht aggregierten Spalten festgelegt.

Das obige ist der detaillierte Inhalt vonWie kann der MySQL-Fehler „Mixing of GROUP Columns' (Fehler Nr. 1140) behoben werden?. 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