sql >> Databáze >  >> RDS >> Mysql

Jaký je rozdíl mezi count(0), count(1).. a count(*) v mySQL/SQL?

Vlastně nic, pokud nezadáte pole v tabulce nebo výraz v závorkách místo konstantních hodnot nebo *

Dovolte mi, abych vám podrobně odpověděl. Count vám dá nenulové číslo záznamu daného pole. Řekněme, že máte tabulku s názvem A

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

všechny vrátí stejný počet záznamů, to je počet řádků v tabulce A. Přesto je výstup jiný. Pokud jsou v tabulce 3 záznamy. S X a Y jako názvy polí

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)

Všechny tři dotazy tedy vrátí stejné číslo. Pokud nepoužijete

select count(Y) from A 

protože existuje pouze jedna nenulová hodnota, dostanete 1 jako výstup



  1. Jak importovat soubor Excel do databáze mysql z PHP

  2. postgres csv date null chyba importu

  3. Reproduce MySQL error:Server ukončil připojení (node.js)

  4. Jak zlepšit výkon dotazů pomocí pořadí podle, seskupení podle a spojení