美文网首页
count(1)

count(1)

作者: 吱吱_呀 | 来源:发表于2022-06-15 18:02 被阅读0次

  今天第一次遇到count(1)这个字段 ,不太理解是什么意思,下文是查询结果和自己的实际执行。

  实际上这里的 count(1) 和count(*) 是一个含义,都是作为表达式对待的。

      count(1),其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。我们可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1,即计算有多少行数据。同理,count(2)、count(3),得到的值完全一样,就是计数。

      count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

从含义上讲,count(1) 与 count(*) 都表示对全部数据行的查询,都会统计Null值。

count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。

count(*) 包括了所有的列,相当于行数,在统计结果的时候,包含字段为null 的记录;

count(1) 用1代表代码行,在统计结果的时候,包含字段为null 的记录 。

1)在表没有主键时,count(1)比count(*)快

2)有主键时,主键作为计算条件,count(主键)效率最高;

3)若表格只有一个字段,则count(8)效率较高。

相关文章

网友评论

      本文标题:count(1)

      本文链接:https://www.haomeiwen.com/subject/ctbxvrtx.html