Nicht aggregierte Spalten in MySQL GROUP BY: Eine Abweichung vom Standard
MySQLs Implementierung von GROUP BY ermöglicht die Einbeziehung nicht aggregierter Spalten in der SELECT-Liste, auch wenn sie nicht in den Gruppierungskriterien enthalten sind. Dieses Verhalten unterscheidet sich vom ANSI-SQL-Standard, der die Auswahl nicht gruppierter Spalten in solchen Abfragen verbietet.
Diese Diskrepanz ergibt sich aus dem Konzept der funktionalen Abhängigkeit. Wenn in MySQL eine nicht gruppierte Spalte funktional von der Gruppierungsspalte abhängig ist, wählt MySQL stillschweigend einen einzelnen Wert für diese Spalte aus und gibt ihn zurück. Es ist jedoch wichtig zu beachten, dass solche Abfragen zu mehrdeutigen Ergebnissen führen können, wenn die funktionale Abhängigkeit nicht erzwungen wird.
Zum Beispiel wäre die folgende Abfrage in ANSI SQL ungültig:
SELECT AVG(table1.col1), table1.personID, persons.col4 FROM table1 JOIN persons ON (table1.personID = persons.id) GROUP BY table1.personID;
In MySQL ist diese Abfrage erlaubt, da personen.col4 über den Join funktional von table1.personID abhängig ist. Wenn jedoch mehrere Personen dieselbe Personen-ID haben, könnte das Ergebnis für personen.col4 willkürlich sein.
Um solche Mehrdeutigkeiten zu verhindern, stellt MySQL den SQL-Modus ONLY_FULL_GROUP_BY zur Verfügung, der strengere Gruppierungsregeln gemäß dem ANSI-Standard erzwingt. Standardmäßig ist dieser Modus nicht aktiviert, er kann jedoch aktiviert werden, um sicherzustellen, dass Abfragen dem Standardverhalten entsprechen.
Beachten Sie, dass SQLite auch nicht aggregierte Spalten in GROUP BY-Abfragen zulässt, aber den letzten Wert auswählt in der Gruppe statt einer beliebigen. Auf dieses Verhalten sollte man sich nicht verlassen, da es sich in zukünftigen Versionen ändern kann. Um Mehrdeutigkeiten zu vermeiden, wird empfohlen, Abfragen so umzuschreiben, dass sie eindeutig und deterministisch sind.
Das obige ist der detaillierte Inhalt vonWie geht MySQL mit nicht aggregierten Spalten in GROUP BY-Klauseln um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden Strategien zum Umgang mit großen Datensätzen in MySQL erörtert, einschließlich Partitionierung, Sharding, Indexierung und Abfrageoptimierung.

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]

In dem Artikel werden in MySQL die Ablagerung von Tabellen mithilfe der Drop -Tabellenerklärung erörtert, wobei Vorsichtsmaßnahmen und Risiken betont werden. Es wird hervorgehoben, dass die Aktion ohne Backups, die Detaillierung von Wiederherstellungsmethoden und potenzielle Produktionsumfeldgefahren irreversibel ist.

In Artikeln werden ausländische Schlüssel zur Darstellung von Beziehungen in Datenbanken erörtert, die sich auf Best Practices, Datenintegrität und gemeinsame Fallstricke konzentrieren.

In dem Artikel werden in verschiedenen Datenbanken wie PostgreSQL, MySQL und MongoDB Indizes für JSON -Spalten in verschiedenen Datenbanken erstellt, um die Abfrageleistung zu verbessern. Es erläutert die Syntax und die Vorteile der Indizierung spezifischer JSON -Pfade und listet unterstützte Datenbanksysteme auf.

Artikel erläutert die Sicherung von MySQL gegen SQL-Injektions- und Brute-Force-Angriffe unter Verwendung vorbereiteter Aussagen, Eingabevalidierung und starken Kennwortrichtlinien (159 Zeichen).


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor