代码之家  ›  专栏  ›  技术社区  ›  Spencer Ruport

在SQL中,count(*)和count(<fieldname>)之间有区别吗

sql
  •  13
  • Spencer Ruport  · 技术社区  · 16 年前

    这是一个不言自明的问题。有什么理由使用其中一种吗?

    5 回复  |  直到 16 年前
        1
  •  47
  •   Fionnuala    16 年前

    Count(*)统计所有记录,包括空值,而Count(fieldname)不包括空值。

        2
  •  6
  •   Otávio Décio    16 年前

    选择计数(*)选择任何行,选择计数(字段)选择此字段不为空的行。

        3
  •  3
  •   Charles Graham    15 年前

    如果您想提高性能(即成为一名完整的性能测试人员),您可能不想这样做。

    例子:

    SELECT COUNT(1) FROM MyTable WHERE ...
    
        4
  •  1
  •   Ross    16 年前

    这也让我困惑了一阵子。

    至少在MySQL中 COUNT(*) COUNT 对列进行排序将计算该列不为空的行数。

        5
  •  -1
  •   Deniss Kozlovs    16 年前