Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è la differenza tra count(0), count(1).. e count(*) in MySQL/SQL?

Niente in realtà, a meno che tu non specifichi un campo in una tabella o un'espressione tra parentesi invece di valori costanti o *

Lascia che ti dia una risposta dettagliata. Il conteggio ti darà un numero di record non nullo del campo specificato. Supponi di avere una tabella denominata A

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

restituiranno tutti lo stesso numero di record, ovvero il numero di righe nella tabella A. Tuttavia l'output è diverso. Se sono presenti 3 record nella tabella. Con X e Y come nomi di campo

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)

Quindi, tutte e tre le query restituiscono lo stesso numero. A meno che non usi

select count(Y) from A 

poiché esiste un solo valore non nullo, otterrai 1 come output