Heim  >  Artikel  >  Datenbank  >  Wie behebt man den MySQL-Fehler 1055: Ausdruck nicht in der GROUP BY-Klausel?

Wie behebt man den MySQL-Fehler 1055: Ausdruck nicht in der GROUP BY-Klausel?

DDD
DDDOriginal
2024-11-21 09:13:11948Durchsuche

How to Fix MySQL Error 1055: Expression Not in GROUP BY Clause?

#1055 – Ausdruck nicht in der GROUP BY-Klausel, nicht kompatibel mit der Serverkonfiguration

In MySQL-Versionen 5.7.12 und höher unter Verwendung von sql_mode= Die Einstellung „only_full_group_by“ stellt sicher, dass Aggregatfunktionen nur auf Spalten ausgeführt werden, die in der GROUP BY-Klausel enthalten sind, oder selbst aggregiert sind Funktionen.

Um den Fehler „Ausdruck der SELECT-Liste ist nicht in der GROUP BY-Klausel und enthält eine nicht aggregierte Spalte, die mit sql_mode=only_full_group_by nicht kompatibel ist“ zu beheben, beachten Sie die folgenden Schritte:

  1. Kompatibilitätsmodus aktivieren:

    • Bearbeiten Sie MySQL Konfigurationsdatei (my.cnf oder mysql.conf.d/mysql.cnf).
    • Fügen Sie die folgende Zeile am Ende der Datei 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
  2. Neustart MySQL:

    • Führen Sie den Befehl sudo service mysql restart aus, um den MySQL-Server neu zu starten.

Diese geänderte sql_mode-Einstellung ermöglicht Aggregatfunktionen für Spalten verwendet werden, die nicht in der GROUP BY-Klausel enthalten sind, ohne den Fehler auszulösen. Es wird jedoch empfohlen, diesen Modus nur aus Kompatibilitätsgründen zu verwenden und eine Umstrukturierung der Abfrage in Betracht zu ziehen, um nach Möglichkeit den Modus „only_full_group_by“ beizubehalten.

Das obige ist der detaillierte Inhalt vonWie behebt man den MySQL-Fehler 1055: Ausdruck nicht in der GROUP BY-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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