Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

count(*) dan count(column_name), apa bedanya?

  • COUNT(*) menghitung semua baris dalam kumpulan hasil (atau grup jika menggunakan GROUP BY).
  • COUNT(column_name) hanya menghitung baris di mana column_name TIDAK NULL. Ini mungkin lebih lambat dalam beberapa situasi bahkan jika tidak ada nilai NULL karena nilainya harus diperiksa (kecuali kolom tidak dapat dibatalkan).
  • COUNT(1) sama dengan COUNT(*) karena 1 tidak akan pernah NULL.

Untuk melihat perbedaan hasilnya, Anda dapat mencoba eksperimen kecil ini:

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;

Hasil:

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. Terapkan Database MySQL Cloud Hybrid menggunakan ClusterControl

  2. Permintaan Kembalikan MySQL

  3. MySQL:Cara Mendapatkan Panjang Teks Dalam Kolom

  4. Bagaimana cara menghapus semua catatan duplikat dalam tabel MySQL tanpa tabel temp

  5. kesalahan:'Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2)' -- Tidak ada /var/run/mysqld/mysqld.sock