sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es la diferencia entre contar (0), contar (1)... y contar (*) en mySQL/SQL?

Nada realmente, a menos que especifique un campo en una tabla o una expresión entre paréntesis en lugar de valores constantes o *

Déjame darte una respuesta detallada. Count le dará un número de registro no nulo del campo dado. Digamos que tiene una tabla llamada A

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

todos devolverán el mismo número de registros, que es el número de filas en la tabla A. Aún así, la salida es diferente. Si hay 3 registros en la tabla. Con X e Y como nombres de 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)

Entonces, las tres consultas devuelven el mismo número. A menos que use

select count(Y) from A 

dado que solo hay un valor no nulo, obtendrá 1 como salida