mysql中使用count()统计的特殊之处

如果你的需要是统计总行数时,为什么要使用count(*),而避免使用指定具体的列名?

count()函数里面的参数是列名的的时候,那么会计算有值项的次数。也就是,该列没有值的项并不会进入计算范围。
这样的话,你想统计的行数并不准确。更重要的是,还会增加消耗。因为,需要判断扫描所有行才知道值是否有值。

如果使用count(*),它会计算总行数。不管你是否有值都会列入计算范围。另外一点:mysqlisam引擎很容易获得总行数的统计。查询速度变得更快

归纳:实际编程中统计总行数是经常用到的。此时使用count(*)多处可见。我很少看到有人使用列名作为参数:count(a)的情况。即使是这样使用,可能其初衷也是想统计行数。只是不知道这

样所造成的细微差异而错误使用了"列名"的形式。

mysql中使用count()统计的特殊之处

时间: 2024-12-15 06:47:56

mysql中使用count()统计的特殊之处的相关文章

用count(*)还是count(列名) || Mysql中的count()与sum()区别

Mysql中的count()与sum()区别 首先创建个表说明问题 CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` varchar(20) default NULL, `score` tinyint(4) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 插入一些数据, insert into result values ('张三','数学',90), ('张三

mysql中关于count的坑

结论,当列所在行值为 null 时,count(列名) 是不会把 null 值计算出来的.而count(*) , count(1) 等方式是会计算的. [1]mysql中关于count的坑 有什么坑呢?当 count(col1)时,col1所在列的行值为 null 时,不统计. [2]null 在count(*) / count(1) 和 count(col) 的区别 结论,当列所在行值为 null 时,count(列名) 是不会把 null 值计算出来的.而count(*) , count(1

mysql中的count(primary_key)、count(1)、count(*)的区别

表结构如下: mysql> show create table user\G; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `pwd` varchar(50) NOT N

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

mysql中的count()函数

1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数. 2.count()语法: (1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录. (2)count(1)---忽略所有列,1表示一个固定值,也可以用count(2).count(3)代替,在统计结果的时候,不会忽略列值为NULL的记录. (3)count(列名)---只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不

云计算学习路线图素材、课件,mysql中函数的用法

在本篇文章中将给大家讲解下mysql中函数的用法: 今天在处理工单的时候,其中的一个需求是某商品的发货时效(即下单时间和发货时间的时间差),接触到了TIMESTAMPDIFF函数 TIMESTAMPDIFF TIMERSTAMPDIFF语法: TIMERSTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 该函数是返回datetime_expr1和datetime_expr2之间的整数差,其中单位有interval参数决定,interval的

MongoDB和MySQL中的large skip问题、count问题

large skip 在为数据分页时,一般要skip多少记录并limit多少记录,例如在MySQL中: SELECT * FROM large_table ORDER BY `id` LIMIT 10000, 30 这个过程是很慢的,因为数据库需要从第一个记录开始扫描到第10000个记录,这个比较耗时. 在http://idning.github.io/point-large-skip.html对上面的sql代码总结了两个优化方法: 方法1: SELECT t.* FROM ( SELECT i

mysql中count,GROUP BY的用法(转载)

计算你拥有动物的总数目与“在pet表中有多少行?”是同样的问题,因为每个宠物有一个记录.COUNT(*)函数计算行数,所以计算动物数目的查询应为: mysql> SELECT COUNT(*) FROM pet;+----------+| COUNT(*) |+----------+|        9 |+----------+在前面,你检索了拥有宠物的人的名字.如果你想要知道每个主人有多少宠物,你可以使用COUNT( )函数: mysql> SELECT owner, COUNT(*) F

mysql中count(),group by使用

count()统计表中或数组中记录 count(*)返回检索行的数目,且不论其值中是否包含NULL count(column_name)返回的是对列中column_name不为NULL的行的统计 例如,查询某活动的某个菜谱的用户评论数: SELECT COUNT(id) FROM uchome_comment WHERE id=530787 AND idtype='paiid' 现在想要查询每个用户评论的次数,并且按照评论次数倒序显示: SELECT COUNT(authorid) AS c,