Rumah >pangkalan data >tutorial mysql >Adakah COUNT(*) Sentiasa Mengembalikan Nilai dalam Pertanyaan SQL?
*SQL COUNT() Fungsi: Hasil Terjamin**
Fungsi COUNT(*)
dalam SQL digunakan untuk menentukan bilangan baris dalam jadual, atau subset baris yang ditentukan oleh klausa WHERE
. Soalan lazim dalam kalangan pembangun ialah sama ada COUNT(*)
boleh gagal mengembalikan nilai.
Jawapan ringkasnya ialah: COUNT(*)
sentiasa mengembalikan hasil. Walaupun klausa WHERE
tidak sepadan dengan mana-mana baris, ia akan mengembalikan 0, menunjukkan bahawa tiada baris memenuhi kriteria carian. Ini kerana COUNT(*)
ialah fungsi agregat yang beroperasi pada keseluruhan set, atau kumpulan, baris.
Pengecualian Klausa GROUP BY
Satu-satunya senario di mana COUNT(*)
mungkin tidak menghasilkan hasil ialah apabila digunakan dengan klausa GROUP BY
dan tiada kumpulan memenuhi syarat klausa WHERE
. Dalam kes ini, tiada kiraan agregat dijana.
Contoh Ilustrasi
Pertimbangkan pertanyaan ini:
<code class="language-sql">SELECT COUNT(*) AS num_rows FROM my_table WHERE condition = 'value';</code>
Jika my_table
tidak mengandungi baris dengan condition
sama dengan 'nilai', pertanyaan akan tetap mengembalikan satu baris dengan num_rows
ditetapkan kepada 0.
Berbeza dengan Fungsi Agregat Lain
Adalah penting untuk diingat bahawa fungsi agregat lain seperti MAX()
, SUM()
dan MIN()
berkelakuan berbeza. Mereka kembali NULL
apabila tiada baris yang sepadan wujud. Amalan terbaik menentukan secara eksplisit mengendalikan nilai NULL
dalam kod aplikasi anda dan bukannya bergantung pada gelagat lalai fungsi ini.
Atas ialah kandungan terperinci Adakah COUNT(*) Sentiasa Mengembalikan Nilai dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!