Rumah > pangkalan data > tutorial mysql > Adakah `COUNT(*)` Sentiasa Mengembalikan Nilai, Walaupun dengan Sifar Padanan?

Adakah `COUNT(*)` Sentiasa Mengembalikan Nilai, Walaupun dengan Sifar Padanan?

Linda Hamilton
Lepaskan: 2025-01-13 07:20:43
asal
377 orang telah melayarinya

Does `COUNT(*)` Always Return a Value, Even with Zero Matches?

Adakah

*`COUNT()` sentiasa dijamin hasil, walaupun tiada perlawanan? **

Adalah penting untuk memahami tingkah laku COUNT(*) apabila menggunakan pertanyaan seperti berikut:

<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>
Salin selepas log masuk

Penjelasan pertanyaan

Pertanyaan ini mengira bilangan baris dalam jadual table dengan lajur x bersamaan dengan y.

*Jawapan: Ya, `COUNT()` sentiasa mengembalikan hasil**

Tidak seperti fungsi agregat lain seperti MAX, SUM atau MIN, yang mengembalikan nilai NULL apabila tiada rekod sepadan dengan keadaan, COUNT(*) sentiasa mengembalikan hasil.

*Punca: `COUNT()` mengira nilai NULL**

Sebab bagi tingkah laku ini ialah COUNT(*) menilai semua baris dalam jadual, termasuk baris dengan nilai NULL. Oleh itu, COUNT(*) sentiasa mengembalikan 0 walaupun tiada baris yang sepadan dengan keadaan dalam klausa WHERE.

Nota tambahan:

  • Sesetengah pangkalan data mungkin memerlukan penggunaan COUNT(*) dan bukannya COUNT() untuk memastikan nilai NULL ​​dikira.
  • Menambah klausa GROUP BY pada pertanyaan akan menyebabkan COUNT(*) mengembalikan sifar baris jika tiada kumpulan yang sepadan.

Pengecualian

Terdapat pengecualian yang jarang berlaku untuk peraturan ini, contohnya:

  • Pangkalan data dikonfigurasikan untuk mengembalikan NULL atau ralat untuk fungsi agregat yang tidak mempunyai baris yang sepadan.
  • Data yang rosak atau tidak sah menghalang pertanyaan daripada diproses dengan betul.

Atas ialah kandungan terperinci Adakah `COUNT(*)` Sentiasa Mengembalikan Nilai, Walaupun dengan Sifar Padanan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan