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

count(*) i count(nazwa_kolumny), jaka jest różnica?

  • COUNT(*) zlicza wszystkie wiersze w zestawie wyników (lub grupie, jeśli używasz GROUP BY).
  • COUNT(column_name) liczy tylko te wiersze, w których column_name NIE JEST NULL. Może to być wolniejsze w niektórych sytuacjach, nawet jeśli nie ma wartości NULL, ponieważ wartość musi zostać sprawdzona (chyba że kolumna nie dopuszcza wartości NULL).
  • COUNT(1) to to samo co COUNT(*) ponieważ 1 nigdy nie może być NULL.

Aby zobaczyć różnicę w wynikach, możesz przeprowadzić ten mały eksperyment:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

Wynik:

a   b   c
3   2   3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd zdarzenia Mysql przy użyciu php

  2. MySQL otrzymuje pozycję wiersza w ORDER BY

  3. Składnia SQL DROP TABLE — wymienione przez DBMS

  4. Jak usunąć domyślną wartość kolumny w MySQL?

  5. Jak wybrać każdy n-ty wiersz z mysql