count(1)、count(*) 与 count(列名) 的区别?
数据库
MySQL
官方
推荐
count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL
count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL
count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空表示null)的计数,即某个字段值为NULL时,不统计。
阿里巴巴Java开发手册有一条强制建议:不要使用count(列名)或count(常量)来代替count(*)。count(*)就是SQL92定义的标准统计行数语法,跟数据库无关。