计数(*)对计数(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
提交
取消