Rumah >pangkalan data >tutorial mysql >COUNT(*) vs COUNT(column_name): Bilakah Anda Harus Menggunakan Yang Mana dalam MySQL?

COUNT(*) vs COUNT(column_name): Bilakah Anda Harus Menggunakan Yang Mana dalam MySQL?

DDD
DDDasal
2024-11-27 14:29:11949semak imbas

COUNT(*) vs COUNT(column_name): When Should You Use Which in MySQL?

COUNT(*) vs COUNT(column_name): Memahami Perbezaan dalam MySQL

Dalam MySQL, fungsi COUNT() menyediakan kemudahan cara mengira bilangan baris dalam set hasil. Walau bagaimanapun, terdapat dua varian fungsi ini yang mungkin membawa kepada hasil yang berbeza: COUNT(*) dan COUNT(column_name). Memahami perbezaan antara dua varian ini adalah penting untuk pengagregatan dan pengoptimuman data yang tepat.

COUNT(*): Mengira Baris Tanpa Mengira NULL Nilai

COUNT( ) ialah fungsi mudah yang hanya mengira semua baris dalam set hasil. Ia termasuk baris yang mungkin mengandungi nilai NULL untuk mana-mana lajur. Ini bermakna COUNT() menyediakan jumlah kiraan semua rekod, tanpa mengira kandungan datanya.

COUNT(column_name): Mengira Nilai Bukan NULL dalam Lajur Tertentu

Berbeza dengan COUNT(), COUNT(nama_lajur) secara khusus mengira bukan NULL nilai dalam lajur yang ditentukan. Fungsi ini hanya termasuk baris di mana nilai column_name bukan nol. Akibatnya, COUNT(nama_kolom) boleh mengembalikan kiraan yang lebih rendah daripada COUNT() jika terdapat nilai NULL dalam lajur itu.

Contoh: Menunjukkan Perbezaan

Untuk menggambarkan perbezaannya, pertimbangkan perkara berikut jadual:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

Melaksanakan pertanyaan berikut:

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

menghasilkan keputusan berikut:

a   b   c
3   2   3

Dalam senario ini, COUNT() ( lajur "a") mengembalikan 3 kerana ia mengira ketiga-tiga baris, termasuk yang mempunyai nilai NULL untuk lajur "x". COUNT(x) (lajur "b"), sebaliknya, mengembalikan 2 kerana ia hanya mengira baris di mana lajur "x" mempunyai nilai bukan NULL. COUNT(1) (lajur "c"), yang bersamaan dengan COUNT(), juga mengembalikan 3.

Dengan memahami perbezaan antara COUNT(*) dan COUNT(column_name), anda boleh dengan berkesan agregat dan analisis data dalam pertanyaan MySQL anda.

Atas ialah kandungan terperinci COUNT(*) vs COUNT(column_name): Bilakah Anda Harus Menggunakan Yang Mana dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn