首页 > 数据库技术 > 详细

mysql中的count()函数使用

时间:2017-09-27 19:58:03      阅读:249      评论:0      收藏:0      [点我收藏+]

有时候总认为count(*)会比count(1)或者count(column name)慢,事实上是分情况处理。

比如:

---初始化语句

建立一张表并插入数据:

 

create table test2 (id BIGINT PRIMARY key, name varchar(24))ENGINE=INNODB;

insert into test2(id,name)values(1,null);

insert into test2(id,name)values(2,‘name1‘);

insert into test2(id,name)values(3,‘name2‘);

执行下面的select语句:

select count(*) from test2 ;  //结果是:3

select count(id) from test2 ; //结果是:3

select count(name) from test2 ; //结果是:2

select count(name) from test2 where name is null; //结果是:0

count(1)指的并不是计算1的个数,而是指表的第一个字段,如果第一个字段没有建立索引,他的效率是很低的;

而且count(column name)默认查询的是指定字段非空的个数,如果你想查询数据的所有行数,恰巧指定字段又是

一个可存在空库数据的字段,那么得到的数据就不会是期望的值。再来说一下count(),在上述的count(column name)

查询方式中,如果指定的column为限制为非空,那么mysql会将上述表达式转化为count()来进行查询。所以如果想

要查询数据大小,在mysql中建议使用count(*)来执行,含义明了,速度还快。

 

mysql中的count()函数使用

原文:http://www.cnblogs.com/aizj/p/7603333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!