mysql的count(*),count(1),count(列)区别

开发过程中,时常会用到这个count函数,count表示进行统计操作,比如统计某张表的总数量。现实中,都是附带条件where进行统计。那么他们区别是什么呢?

count()和count(1)统计的数据中不会忽略某一列为null的值,coun(列)统计的数据中,只统计该列不为null的值。使用时可根据是否需要统计某列为null的值来进行选择。mysql官方推荐使用count(),这是标准SQL的规范用法,开发过程中,习惯用count(主键)使用。个人习惯。

举例:其中c1为null

CREATE TABLE `test` (

`id` int(10) UNSIGNED NOT NULL,

`c1` varchar(10) DEFAULT NULL,

`c2` char(30) NOT NULL,

`c3` varchar(200) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试';

select count(*) from test where 1

select count(c1) from test where 1 结果就少一条记录。

mysql的count(*),count(1),count(列)区别