Rumah  >  Artikel  >  pangkalan data  >  COUNT(*) lwn. COUNT(column_name): Apakah Perbezaan dalam MySQL?

COUNT(*) lwn. COUNT(column_name): Apakah Perbezaan dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-21 06:39:11960semak imbas

COUNT(*) vs. COUNT(column_name): What's the Difference in MySQL?

Memahami Perbezaan antara COUNT(*) dan COUNT(column_name)

MySQL menyediakan dua fungsi kiraan: COUNT(*) dan COUNT( nama_lajur). Kedua-dua fungsi mengira bilangan baris dalam set hasil, tetapi ia berbeza dalam pengendalian nilai NULL.

COUNT(*)

  • Mengira semua baris dalam set hasil, termasuk baris dengan nilai NULL dalam mana-mana lajur.
  • Sintaks: COUNT(*)

COUNT(column_name)

  • Mengira hanya baris yang lajur yang ditentukan (nama_lajur) BUKAN NULL.
  • Sintaks: COUNT(nama_lajur)

Perbezaan Utama

Feature COUNT(*) COUNT(column_name)
NULL Values Includes rows with NULL values Excludes rows with NULL values
Performance May be slower in some cases even if the column has no NULL values Generally slower due to the need to check each value

COUNT(1)

COUNT(1) bersamaan dengan COUNT(*). Ini kerana 1 tidak boleh menjadi NULL. Oleh itu, ia juga mengira semua baris dalam set hasil.

Contoh

Pertimbangkan jadual berikut bernama "jadual1":

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);

Sekarang , mari kita bandingkan keputusan tiga fungsi kiraan:

SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

Keputusan:

a   b   c
3   2   3

Seperti yang anda lihat, COUNT() mengira semua tiga baris, tanpa mengira nilai NULL dalam lajur "x". COUNT(x) mengecualikan baris dengan nilai NULL, menghasilkan kiraan 2. COUNT(1) menghasilkan hasil yang sama seperti COUNT() kerana 1 tidak boleh NULL.

Atas ialah kandungan terperinci COUNT(*) lwn. COUNT(column_name): Apakah Perbezaan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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