2020-03-01
专注于为中小企业提供网站设计、成都网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业荥阳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
对于count的函数的使用,我们常见的一个错误是在括号内随意指定一个列去统计结果集的行数。但只有指定的行确实都是有值的时候,统计的才是实际的行数,否则可能统计的结果并不是实际的行数。而对于MyISAM存储引擎,如果某一列的值确实不可能为null时,MySQL内部就会将count()函数优化成count(*),若没有带where条件,此时计算速度是非常快的,因为此时没有实际的去计算表的行数。
总结: 对于MyISAM存储引擎,不带where条件的count(*)是非常快的。
技巧:
利用上述MyISAM的count(* )特性,加速一些特定查询条件的count()查询。
如:
对于select count(* ) from tablename where id 10; 可以做如下的反转查询:
select (select count(* ) from tablename) - count(* ) from tablename where id 10;
因为这样在查询阶段MySQL将子查询当做一个常数来处理,大大减少了扫描的行数。
用count(*)函数来统计,返回匹配指定条件的行数。
例如有个表名称为demos,那么统计行数可以写:select count(*) from demos;
后面可以加限制条件,例如统计val大于3的记录行数:select count(*) from demos where val3;
扩展资料:
MySQL COUNT(*)
The COUNT(*) function returns the number of rows in a result set returned by a SELECT statement. TheCOUNT(*) function counts rows that contain no-NULL and NULL values.
COUNT(*) 语法
SELECT COUNT(*) FROM table_name;
参考资料:MySQL官网-MySQL COUNT
统计所有记录的数量:
SELECT COUNT(*) FROM table_name
统计某列的数量:
SELECT COUNT(column_name) FROM table_name
where 条件