Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jaka jest różnica między count(0), count(1).. i count(*) w mySQL/SQL?

Tak naprawdę nic, chyba że określisz pole w tabeli lub wyrażenie w nawiasach zamiast wartości stałych lub *

Pozwól, że udzielę szczegółowej odpowiedzi. Count poda niezerowy numer rekordu danego pola. Załóżmy, że masz stół o nazwie A

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

wszystkie zwrócą taką samą liczbę rekordów, czyli liczbę wierszy w tabeli A. Jednak wynik jest inny. Jeśli w tabeli są 3 rekordy. Z X i Y jako nazwami pól

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)

Tak więc wszystkie trzy zapytania zwracają tę samą liczbę. Chyba że używasz

select count(Y) from A 

ponieważ istnieje tylko jedna wartość niepusta, otrzymasz 1 jako wyjście



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Logika różnicy dat w LINQ

  2. Zapytanie nie zwraca żadnych wyników tylko po dodaniu ORDER BY

  3. Nie znaleziono klasy „mysqli_connect”

  4. Uniemożliwianie MySQL wstawiania niejawnych wartości domyślnych do kolumn niepustych

  5. Połącz wiele unikalnych tabel MySQL i uporządkuj według jednej kolumny