mysql中的count()函数使用

Posted Azjs丶V1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的count()函数使用相关的知识,希望对你有一定的参考价值。

有时候总认为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()函数使用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 连接表和使用 COUNT 函数的问题

Mysql无效使用带Count的组函数?

mysql中的count()函数

Mysql经常使用函数汇总

26《MySQL 教程》聚合函数(聚合函数 MIN、MAX)

MySQL中count的用法