Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebe ich den MySQL-Fehler „Ausdruck der SELECT-Liste ist nicht in der GROUP BY-Klausel'?

Linda Hamilton
Freigeben: 2024-11-21 02:24:12
Original
444 Leute haben es durchsucht

How to Fix the MySQL

Fehlerbehebung beim Fehler „Ausdruck der SELECT-Liste ist nicht in der GROUP BY-Klausel“

Problem:

Bei der Ausführung von a Wenn Sie eine Abfrage ausführen, die nicht aggregierte Spalten in der GROUP BY-Klausel enthält, stoßen Sie auf Folgendes Fehler:

#1055 - Expression of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
Nach dem Login kopieren

Grund:

Dieser Fehler tritt auf, wenn Sie nicht aggregierte Spalten in der SELECT-Liste haben, die nicht in der GROUP BY-Klausel enthalten sind. In MySQL Version 5.7.12 ist standardmäßig der SQL-Modus „only_full_group_by“ aktiviert, der strengere Gruppierungsregeln erzwingt.

Lösung:

Um diesen Fehler zu beheben, können Sie entweder :

1. Fügen Sie die nicht aggregierten Spalten zur GROUP BY-Klausel hinzu:

Dadurch wird sichergestellt, dass die Abfrage nur Zeilen zurückgibt, die für alle Spalten in der GROUP BY-Klausel dieselben Werte haben.

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type AND annee.id_annee = fiche.id_annee 
  AND annee = YEAR(CURRENT_TIMESTAMP)
GROUP BY libelle, credit_initial, disponible_v
ORDER BY libelle ASC;
Nach dem Login kopieren

2. Deaktivieren Sie den SQL-Modus „only_full_group_by“:

Dadurch kann die Abfrage Zeilen zurückgeben, die möglicherweise nicht für alle Spalten in der GROUP BY-Klausel dieselben Werte haben.

sudo vim /etc/mysql/conf.d/mysql.cnf
Nach dem Login kopieren

Scrollen Sie zu Ende der Datei und fügen Sie die folgenden Zeilen hinzu:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Nach dem Login kopieren

Speichern und beenden Sie vim. MySQL neu starten:

sudo service mysql restart
Nach dem Login kopieren

Nach dem Neustart von MySQL sollte die Abfrage ohne Fehler erfolgreich ausgeführt werden.

Das obige ist der detaillierte Inhalt vonWie behebe ich den MySQL-Fehler „Ausdruck der SELECT-Liste ist nicht in der GROUP BY-Klausel'?. 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