老师 count(*) count(0) count(1)有什么区别呢?怎么使用,正常使用哪个呢?

老师 count(*) count(0) count(1)有什么区别呢?怎么使用,正常使用哪个呢?

老师 count(*) count(0) count(1)有什么区别呢?怎么使用,正常使用哪个呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、count(*) 和count(1) 都是统计行数,他们在使用时效果几乎相同,只是效率稍有不同。

count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL。
count(1)是结果集中多了一个常数值1的列,然后统计这个列有多少行。

有主键或联合主键的情况下,count(*)略比count(1)快一些。  没有主键的情况下count(1)比count(*)快一些。  如果表只有一个字段,则count(*)是最快的。

    2、count(0)是直接统计行数。

        select count(*) :查询所有列;  

        select count(0):忽略所有列,用数字效率要高一些,因为统计行数,与列无关,所以效率会更高一些。比如 PageHelper自动生成时会使用count(0)

如上所示是它们的简单理解,同学可以根据不同的使用场景来用。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师