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
Lepaskan: 2024-11-27 14:29:11
asal
948 orang telah melayarinya

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);
Salin selepas log masuk

Melaksanakan pertanyaan berikut:

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;
Salin selepas log masuk

menghasilkan keputusan berikut:

a   b   c
3   2   3
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan