老师 count(*) count(0) count(1)有什么区别呢?怎么使用,正常使用哪个呢?
老师 count(*) count(0) count(1)有什么区别呢?怎么使用,正常使用哪个呢?
41
收起
正在回答
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)
如上所示是它们的简单理解,同学可以根据不同的使用场景来用。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9401 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星