3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
COUNT(*)
計(jì)算所有行COUNT(column)
僅計(jì)算非NULLCOUNT(1)
等同于COUNT(*)
因?yàn)?是非空表達(dá)式
您在使用COUNT(*)
或COUNT(column)
應(yīng)根據(jù)所需的輸出只。

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
這適用于MySQL。我不確定其他人。
區(qū)別在于:
COUNT(*)
將計(jì)算記錄數(shù)。COUNT(column_name)
將計(jì)算column_name不為null的記錄數(shù)。
因此,這COUNT(*)
是您應(yīng)該使用的。如果您使用的是MyISAM,并且沒(méi)有WHERE
子句,那么優(yōu)化器甚至不必查看表,因?yàn)橐呀?jīng)緩存了行數(shù)。

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
當(dāng)它是一個(gè)標(biāo)識(shí)符(并保證為非標(biāo)識(shí)符NULL
)時(shí),這可能并不重要。
但是,有是之間的差異COUNT(*)
,并COUNT(column)
在一般情況下,這COUNT(column)
將返回非計(jì)數(shù)NULL
列中的值。還有一種COUNT(DISTINCT column)
變體,可返回唯一的非NULL
值的數(shù)量。
- 3 回答
- 0 關(guān)注
- 710 瀏覽
添加回答
舉報(bào)