Rumah > pangkalan data > tutorial mysql > COUNT(column) vs. COUNT(*): Bilakah Saya Harus Menggunakan Yang Mana dalam SQL?

COUNT(column) vs. COUNT(*): Bilakah Saya Harus Menggunakan Yang Mana dalam SQL?

Patricia Arquette
Lepaskan: 2025-01-13 15:01:44
asal
598 orang telah melayarinya

COUNT(column) vs. COUNT(*): When Should I Use Which in SQL?

*Penjelasan terperinci tentang perbezaan antara COUNT(lajur) dan COUNT() dalam SQL**

Dalam pertanyaan SQL, fungsi count() digunakan untuk pengagregatan data, tetapi terdapat perbezaan yang ketara tetapi penting antara dua bentuk yang biasa digunakan count(column) dan count(*).

COUNT(lajur): tidak termasuk nilai NULL

Sintaks

count(column) mengira bilangan nilai bukan NULL dalam lajur yang ditentukan, dengan berkesan mengabaikan baris dengan nilai lajur NULL. Ciri ini berguna apabila anda perlu menentukan bilangan nilai bukan nol dalam lajur.

*COUNT(): Mengandungi nilai NULL**

Sebaliknya, count(*) mengira bilangan baris dalam set hasil, termasuk baris yang mengandungi nilai NULL. Tidak seperti count(column), ia menganggap NULL sebagai item kiraan yang sah. Ciri ini berguna apabila anda perlu mendapatkan jumlah bilangan baris tanpa mengira sama ada lajur tertentu mengandungi data yang tiada.

Contoh yang menggambarkan perbezaan

Pertimbangkan jadual bernama #bla yang mengandungi rekod berikut:

create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)
Salin selepas log masuk

Gunakan count(column) untuk menjalankan pertanyaan berikut:

select count(id),count(id2)
from #bla
Salin selepas log masuk

Hasilnya ialah:

<code>3   2</code>
Salin selepas log masuk

Antaranya, count(id) hanya mengira tiga nilai bukan NULL ​​dalam lajur id, manakala count(id2) mengira dua nilai bukan NULL ​​dalam lajur id2.

Walau bagaimanapun, menggantikan count(*) dengan count(column) menghasilkan 7, seperti yang ditunjukkan dalam pertanyaan berikut:

select count(*)
from #bla
Salin selepas log masuk

Dalam kes ini, count(*) mengandungi tujuh baris daripada jadual, tidak kira sama ada ia mengandungi nilai NULL. Perbezaan antara mengira nilai bukan NULL dan mengira baris menjadi sangat penting apabila berurusan dengan set data yang mengandungi data yang hilang.

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

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