回首憶惘然
2019-07-22 15:34:12
計數(*)對計數(1)對計數(PK):哪個更好?我經常發現這三個變體:SELECT COUNT(*) FROM Foo;SELECT COUNT(1) FROM Foo;SELECT COUNT(PrimaryKey) FROM Foo;據我所見,他們都在做同樣的事情,我發現自己使用了我的代碼庫中的三個。然而,我不喜歡用不同的方式做同樣的事情。我該堅持哪一個?他們中有誰比那兩個人好嗎?
3 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
COUNT(*)
計數行數 COUNT(1)
還計算行數。
pk
COUNT(pk)
還計算行數。
pk
COUNT(possibly_null)
計算列中具有非空值的行數。 possibly_null
.COUNT(DISTINCT pk)
還計算行數(因為主鍵不允許重復)。 COUNT(DISTINCT possibly_null_or_dup)
計算列中不同的非空值數。 possibly_null_or_dup
.COUNT(DISTINCT possibly_duplicated)
計算列中不同(必然為非空)值的數目。 possibly_duplicated
當它有 NOT NULL
上面的條款。
COUNT(*)
EXISTS
WHERE EXISTS(SELECT * FROM ...)

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
count(*)
count(1)
count(pk)
.
添加回答
舉報
0/150
提交
取消