区别:
- count(*):包括了所有的列,也就是相当于行数,不会忽略列值为NULL的记录
- count(1):忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL 的记录
- count(列名):它包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不仅仅只是空字符串或者0,null的情况也包括)的计数,即某个字段值为NULL时不统计
在执行效率上看,分为如下几种情况:
- 列名为主键,count(列名)会比count(1)快
- 列名不为主键,count(1)会比count(列名)快
- 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)
- 如果表只有一个字段,则优先 select count(*)
版权声明:本文为li1351026473原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。