count(*)和count(1)区别?
学习是最好的投资!
以下sql可以看到你的sql会被mysql转译成怎样
EXPLAIN EXTENDED SELECT count(*) FROM `table`; SHOW WARNINGS;
我的版本是mysql 5.6.26,以下是转译后的结果:
/* select#1 */ select count(0) AS `count(*)` from `test`.`table`
所以,在我看来,较新版本的mysql已经没这方面的区别了,不过习惯上我还是使用count(1)。
在数据记录都不为空的时候查询出来结果上没有差别的. 但当COUNT(1)查询的那列有空的时候空的是要被去掉的不记入统计中.这样查询出来的结果是不一样的.
以下sql可以看到你的sql会被mysql转译成怎样
我的版本是mysql 5.6.26,以下是转译后的结果:
所以,在我看来,较新版本的mysql已经没这方面的区别了,不过习惯上我还是使用count(1)。
在数据记录都不为空的时候查询出来结果上没有差别的. 但当COUNT(1)查询的那列有空的时候空的是要被去掉的不记入统计中.这样查询出来的结果是不一样的.