Rumah >pangkalan data >tutorial mysql >COUNT(column) vs. COUNT(*): Bilakah Saya Harus Menggunakan Yang Mana dalam 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
Sintakscount(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:
<code class="language-sql">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)</code>
Gunakan count(column)
untuk menjalankan pertanyaan berikut:
<code class="language-sql">select count(id),count(id2) from #bla</code>
Hasilnya ialah:
<code>3 2</code>
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:
<code class="language-sql">select count(*) from #bla</code>
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!