Rumah >pangkalan data >tutorial mysql >COUNT(*) vs. COUNT(Lajur): Apakah Perbezaan dalam Pengiraan Baris SQL?
*Perbezaan antara COUNT() dan COUNT(Lajur) dalam SQL**
Dalam SQL, fungsi agregat COUNT(*) dan COUNT(lajur) masing-masing menyediakan mekanisme berbeza untuk mengira baris dan lajur data dalam jadual.
COUNT() Mengira semua baris dalam jadual yang ditentukan, tidak termasuk nilai NULL. Ini bermakna COUNT() mengembalikan jumlah bilangan baris bukan NULL, tanpa mengira lajur yang mengandungi data.
Sebaliknya, COUNT(lajur) mengira bilangan baris di mana lajur yang ditentukan bukan NULL. Ini membolehkan pengiraan terpilih bagi nilai bukan NULL dalam lajur tertentu.
*Gantikan COUNT(lajur)** dengan COUNT(
)Menggantikan semua kejadian COUNT(nama_lajur) dalam pertanyaan dengan COUNT(*) akan mempunyai kesan berikut:
Demo
Untuk menggambarkan perbezaan ini, mari kita hasilkan semula senario yang digariskan dalam soalan asal:
<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) select count(*),count(id),count(id2) from #bla</code>
Keputusan:
<code>7 3 2</code>
Dalam contoh ini, lajur COUNT(*) mengira kesemua tujuh baris, termasuk dua baris di mana kedua-dua id dan id2 adalah NULL. Lajur COUNT(id) hanya mengira tiga baris dengan id bukan NULL, manakala COUNT(id2) mengira dua baris dengan id2 bukan NULL.
Atas ialah kandungan terperinci COUNT(*) vs. COUNT(Lajur): Apakah Perbezaan dalam Pengiraan Baris SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!