Heim >Datenbank >MySQL-Tutorial >COUNT(*) vs. COUNT(column_name): Was ist der Unterschied und wann sollten Sie beide verwenden?
Die Unterschiede zwischen COUNT(*) und COUNT(column_name) verstehen
Bei der Arbeit mit SQL-Abfragen ist es wichtig, den Unterschied zwischen zu verstehen COUNT(*) und COUNT(Spaltenname), um die Genauigkeit sicherzustellen Ergebnisse.
COUNT(*)
COUNT(*) zählt alle Zeilen im Ergebnissatz, unabhängig davon, ob sie NULL-Werte enthalten. Dies ist die umfassendste Zählung, da jede Zeile berücksichtigt wird, die die Abfragekriterien erfüllt.
COUNT(column_name)
COUNT(column_name) zählt nur die Zeilen, in denen die Die angegebene Spalte ist nicht NULL. Diese Funktion ignoriert Zeilen mit fehlenden Werten für die angegebene Spalte.
Auswirkungen auf die Leistung
COUNT() kann rechenintensiver sein als COUNT(column_name), wenn es vorhanden ist Es gibt viele NULL-Werte in der Tabelle. Da COUNT() unabhängig davon jede Zeile überprüfen muss, kann die Leistung in solchen Szenarien langsamer sein.
Alternative zu COUNT(*)
COUNT(1) ist eine Alternative zu COUNT(*), die auch die Gesamtzahl der Zeilen zurückgibt. Es wird jedoch unabhängig von anderen Spaltenwerten immer ein Wert ungleich NULL ausgewertet.
Experimentelle Demonstration
Um den Unterschied in den Ergebnissen zu veranschaulichen, betrachten Sie die folgende Tabelle und Abfrage:
CREATE TABLE table1 (x INT NULL); INSERT INTO table1 (x) VALUES (1), (2), (NULL); SELECT COUNT(*) AS a, COUNT(x) AS b, COUNT(1) AS c FROM table1;
Ergebnis:
a b c 3 2 3
Wie Sie sehen können, gibt COUNT() 3 zurück, da alle Zeilen gezählt werden, während COUNT( x) gibt 2 zurück, mit Ausnahme der NULL-Wertzeile. COUNT(1) ist von COUNT() nicht zu unterscheiden und gibt ebenfalls 3 zurück.
Das obige ist der detaillierte Inhalt vonCOUNT(*) vs. COUNT(column_name): Was ist der Unterschied und wann sollten Sie beide verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!