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

Hvad er forskellen mellem count(0), count(1) og count(*) i mySQL/SQL?

Ikke noget, medmindre du angiver et felt i en tabel eller et udtryk i parenteser i stedet for konstante værdier eller *

Lad mig give dig et detaljeret svar. Optælling vil give dig ikke-nul rekordnummer for givet felt. Lad os sige, at du har en tabel med navnet A

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

vil alle returnere det samme antal poster, det vil sige antallet af rækker i tabel A. Alligevel er outputtet anderledes. Hvis der er 3 poster i tabellen. Med X og Y som feltnavne

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)

Så alle tre forespørgsler returnerer det samme antal. Medmindre du bruger

select count(Y) from A 

da der kun er én værdi, der ikke er nul, får du 1 som output



  1. Hvordan får man navnet på den ændrede tabel i en Postgres-hændelsestrigger?

  2. Kan jeg styre GROUP BY i django 1.3's orm?

  3. Importer XML-fil i Oracle XML DB Repository

  4. PHP comet usleep blokerer apache mpm?