Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der Unterschied zwischen count(0), count(1) und count(*) in mySQL/SQL?

Eigentlich nichts, es sei denn, Sie geben ein Feld in einer Tabelle oder einen Ausdruck in Klammern anstelle von konstanten Werten oder *

an

Lassen Sie mich Ihnen eine ausführliche Antwort geben. Count gibt Ihnen eine Datensatznummer ungleich Null des angegebenen Felds. Angenommen, Sie haben eine Tabelle namens A

select 1 from A
select 0 from A
select * from A

geben alle die gleiche Anzahl von Datensätzen zurück, d. h. die Anzahl der Zeilen in Tabelle A. Die Ausgabe ist jedoch unterschiedlich. Wenn es 3 Datensätze in der Tabelle gibt. Mit X und Y als Feldnamen

select 1 from A will give you

1
1
1

select 0 from A will give you
0
0
0

select * from A will give you ( assume two columns X and Y is in the table )
X      Y
--     --
value1 value1
value2 (null)
value3 (null)

Alle drei Abfragen geben also dieselbe Zahl zurück. Es sei denn, Sie verwenden

select count(Y) from A 

Da es nur einen Nicht-Null-Wert gibt, erhalten Sie 1 als Ausgabe