Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la différence entre count(0), count(1).. et count(*) dans mySQL/SQL ?

Rien vraiment, sauf si vous spécifiez un champ dans une table ou une expression entre parenthèses au lieu de valeurs constantes ou *

Laissez-moi vous donner une réponse détaillée. Count vous donnera un numéro d'enregistrement non nul du champ donné. Disons que vous avez une table nommée A

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

renverront tous le même nombre d'enregistrements, c'est-à-dire le nombre de lignes dans la table A. La sortie est toujours différente. S'il y a 3 enregistrements dans la table. Avec X et Y comme noms de champs

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)

Ainsi, les trois requêtes renvoient le même nombre. Sauf si vous utilisez

select count(Y) from A 

puisqu'il n'y a qu'une seule valeur non nulle, vous obtiendrez 1 en sortie