Das liegt daran, dass ohne die GROUP BY-Klausel die von MySQL zurückgegebene Ausgabe irreführend sein kann. Zu Demonstrationszwecken geben wir in der unten angegebenen Tabelle „Studenten“ das folgende Beispiel an:
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.00 sec) mysql> Select count(*), Name from Student; +----------+--------+ | count(*) | name | +----------+--------+ | 4 | Gaurav | +----------+--------+ 1 row in set (0.00 sec)
Aus dem obigen Abfrageergebnis können wir erkennen, dass es die Ausgabe der Gruppenfunktion COUNT(*) als Gesamtzahl der Zeilen in zurückgibt table , aber der Wert „Gaurav“ im Feld „Name“ ist irreführend, denn auf welcher Grundlage wir dies tun, ist es entweder der erste Wert der Spalte oder er wird mehrmals in der Spalte gespeichert und MySQL gibt ihn zurück.
Wenn wir diese Abfrage nun mit der GROUP BY-Klausel schreiben, sieht die Ergebnismenge wie folgt aus:
mysql> Select count(*), name from student GROUP BY id; +----------+---------+ | count(*) | name | +----------+---------+ | 1 | Gaurav | | 1 | Aarav | | 1 | Harshit | | 1 | Gaurav | +----------+---------+ 4 rows in set (0.00 sec)
Wie aus der obigen Ergebnismenge hervorgeht, erhalten wir mit Hilfe der GROUP BY-Klausel eine aussagekräftige Ausgabe.
Das obige ist der detaillierte Inhalt vonWarum sollten wir in MySQL SELECT-Abfragen keine Gruppenfunktionen für nicht gruppierte Felder ohne GROUP BY-Klausel verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!