Beheben Sie den Gruppierungsfehler Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel enthalten und enthält nicht aggregierte Werte in MySQL-Versionen über 5.7

Beheben Sie den Gruppierungsfehler Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel enthalten und enthält nicht aggregierte Werte in MySQL-Versionen über 5.7

Grund:

MySQL 5.7.5 und höher implementiert die Erkennung funktionaler Abhängigkeiten. Wenn der SQL-Modus only_full_group_by aktiviert ist (was standardmäßig der Fall ist), lehnt MySQL Abfragen ab, deren Auswahllisten, Bedingungen oder Sortierlisten auf nicht aggregierte Spalten verweisen, die nicht in der Gruppierung benannt sind, ohne von ihnen funktional abhängig zu sein. (Vor 5.7.5 hat MySQL keine Funktionsabhängigkeiten erkannt und only_full_group_by war standardmäßig nicht aktiviert. Eine Beschreibung des Verhaltens vor 5.7.5 finden Sie im MySQL 5.6-Referenzhandbuch.)

Führen Sie den folgenden Befehl aus, um den Inhalt von sql_mode anzuzeigen:

mysql> SITZUNGSVARIABLEN ANZEIGEN;
mysql> GLOBALE VARIABLEN ANZEIGEN;
mysql> wähle @@sql_mode;

Es ist ersichtlich, dass die Werte von sql_mode für Sitzung und global sind:

NUR_VOLLSTÄNDIGE_GRUPPE_NUR, STRENGE_TRANS_TABELLEN, KEINE_NULL_IM_DATUM, KEIN_NULL_DATUM, FEHLER_FÜR_DIVISION_DURCH_NULL, KEIN_AUTOMATISCHES_ERSTELLEN_BENUTZER, KEIN_ENGINE_SUBSTITUTION

only_full_group_by Beschreibung:

only_full_group_by: Diese Option verwendet dieselben Gruppenregeln wie Oracle. Die ausgewählten Spalten müssen in der Gruppe sein oder aggregierte Spalten (SUM, AVG, MAX, MIN) sein. Tatsächlich finde ich persönlich, dass diese Konfiguration „distinct“ ähnelt, also entfernen Sie sie einfach.

lösen:

globalen SQL-Modus festlegen = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';<br data-filtered="gefiltert">Sitzungs-SQL-Modus festlegen = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';<br data-filtered="gefiltert">

Zusammenfassen

Das Obige ist die Lösung für den Gruppierungsfehler „Ausdruck Nr. 1 der SELECT-Liste ist nicht in der GROUP BY-Klausel und enthält nicht aggregierte Werte“ in MySQL-Versionen über 5.7. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • MySQL-Gruppierungsmethode für die Gruppierungssequenz einzelner Wörter und die Gruppierung mehrerer Felder
  • MySql Group By implementiert die Gruppierung mehrerer Felder
  • Mysql verwendet eine gruppenweise Sortierung
  • So verwenden Sie GROUP BY in MySQL, um die ersten N Datensätze zu erhalten
  • Detaillierte Erläuterung des Implementierungsprinzips der MySQL-Gruppenabfrage Group By
  • MySQL-Gruppierung, um die ersten paar Datensätze in jeder Gruppe (Ranking) mit Recherche nach „Gruppieren nach“ und „Sortieren nach“ zu erhalten
  • Implementieren Sie Group By basierend auf MySQL, um die neuesten Daten jeder Gruppe zu erhalten

<<:  Detaillierte Erläuterung des Nginx-Forward-Proxys und des Reverse-Proxys

>>:  JS implementiert das Schere-Stein-Papier-Spiel

Artikel empfehlen

Erläuterung der Faktoren, die die Datenbankleistung in MySQL beeinflussen

Eine Geschichte über die Datenbankleistung Währen...

Vue implementiert Mehrfachauswahl im unteren Popup-Fenster

In diesem Artikelbeispiel wird der spezifische Co...

So stellen Sie mit Node-Red eine Verbindung zur MySQL-Datenbank her

Um Node-red mit der Datenbank (mysql) zu verbinde...

Beispielanalyse für MySQL Oracle- und SQL Server-Paging-Abfragen

Ich habe vor Kurzem eine einfache Studie zur Date...

7 Möglichkeiten zum Schreiben einer Vue v-for-Schleife

Inhaltsverzeichnis 1. Verwenden Sie in der v-for-...

Analysieren Sie die Dauer von TIME_WAIT aus dem Linux-Quellcode

Inhaltsverzeichnis 1. Einleitung 2. Lassen Sie un...

Wartungsmethode für den Innodb-Systemtabellenbereich

Umweltbeschreibung: Es gibt eine laufende MySQL-U...

Code zur Implementierung eines einfachen Pfeilsymbols mit Div+CSS in HTML

Beim Webdesign verwenden wir Pfeile oft als Dekor...