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

MySql legt die angegebenen Benutzerdatenbankansichtsabfrageberechtigungen fest

1. Neuen Benutzer anlegen: 1. Führen Sie eine SQL...

Analysieren Sie CSS, um die Farbfunktion des Bildthemas zu extrahieren (Tipps)

Hintergrund Alles begann, als ein Klassenkamerad ...

Implementierung der Kommunikation zwischen Vue und Flask

axios installieren und Kommunikation implementier...

Vue3 kapselt die Textskelett-Effektkomponente der Seitennavigation

Vue3-Projektkapselung Seitennavigation Textskelet...

Methode zum Schreiben von bedingten Kommentaren und Beispielcode

Als Front-End-Ingenieure müssen wir mit dem IE ve...

Detaillierte Erklärung des Unterschieds zwischen Uniapp und Vue

Inhaltsverzeichnis 1. Einfaches Seitenbeispiel 2....

Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Dieser Artikel stellt hauptsächlich den Prozess d...

Besprechen Sie die Anwendung von Mixin in Vue

Mixins bieten eine sehr flexible Möglichkeit, wie...

GET POST Unterschiede

1. „Get“ wird verwendet, um Daten vom Server abzu...