sql >> Database >  >> RDS >> Mysql

Wat is het verschil tussen count(0), count(1).. en count(*) in mySQL/SQL?

Niets eigenlijk, tenzij je een veld opgeeft in een tabel of een uitdrukking tussen haakjes in plaats van constante waarden of *

Laat me je een gedetailleerd antwoord geven. Count geeft u een niet-null recordnummer van een bepaald veld. Stel dat je een tafel hebt met de naam A

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

zullen allemaal hetzelfde aantal records retourneren, dat is het aantal rijen in tabel A. Toch is de uitvoer anders. Als er 3 records in de tabel staan. Met X en Y als veldnamen

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)

Dus alle drie de query's retourneren hetzelfde nummer. Tenzij u

. gebruikt
select count(Y) from A 

aangezien er slechts één niet-null-waarde is, krijgt u 1 als uitvoer



  1. Meerdere databases met licht veranderende modellen. Hoe sta ik toe dat Entity Framework kolommen tijdens runtime verwijdert?

  2. Een overzicht van de verschillende scanmethoden in PostgreSQL

  3. Genest object in structuur krijgen in gorm

  4. Waarom SELECTEREN VOOR UPDATE gebruiken?