Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a diferença entre count(0), count(1).. e count(*) no mySQL/SQL?


Nada realmente, a menos que você especifique um campo em uma tabela ou uma expressão entre parênteses em vez de valores constantes ou *

Deixe-me dar-lhe uma resposta detalhada. Count fornecerá um número de registro não nulo de determinado campo. Digamos que você tenha uma tabela chamada A
select 1 from A
select 0 from A
select * from A

todos retornarão o mesmo número de registros, que é o número de linhas na tabela A. Ainda assim, a saída é diferente. Se houver 3 registros na tabela. Com X e Y como nomes 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)

Assim, todas as três consultas retornam o mesmo número. A menos que você use
select count(Y) from A 

como há apenas um valor não nulo, você receberá 1 como saída