Mysql COUNT()条件计数

本文揭示了MySQL中COUNT方法的一个鲜为人知的特性——可以指定条件进行统计。例如,`COUNT(gender='男')`用于统计性别为男的用户数量。同时,`COUNT(color='blue' OR NULL)`则统计颜色为蓝色的项,非蓝色项以NULL计,NULL不被计入。COUNT(*)则直接统计所有行数,是获取结果集行数的高效方式。了解这些用法能帮助提升SQL查询的效率和准确性。
摘要由CSDN通过智能技术生成

用了这么多年的count,竟然不知道count方法还可以指定条件。

用法示例:

SELECT COUNT(gender = '男') from users;

SELECT COUNT(color = 'blue' OR NULL) AS blue, COUNT(color = 'red' OR NULL) AS red FROM items;    --  高性能Mysql第三版 P238

-- COUNT(coloer = 'blue' OR NULL) :统计color为blue的数据,当不为blue是用NULL代替,NULL不会被COUNT统计

COUNT()是一个特殊的函数,有两种非常不同的作用:

1. 它可以统计某个列值的数量,也可以统计行数。在统计列值时要求列值时非空的(不统计NULL)。如果在COUNT()的括号中制定了列或者列的表达式,则统计的就是这个表达式有值的结果数。

2. COUNT()的另一个作用是统计结果集的行数。当Mysql确认括号内的表达式值不可能为NULL时,实际上就是在统计行数。最简单的就是当我们使用COUNT(*)时,这种情况下的通配符*并不会像我们猜想的那样扩展成所有的列,实际上,它会忽略所有的列而直接统计所有的行数。所以,如果希望知道结果集的行数,最好使用COUNT(*),这样写意义清晰,性能也会更好。

                                                                                          ----出自《高性能Mysql第三版》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值