0


MySQL - count(字段)、count(主键)、count(1)、count(*)的区别

文章目录

🐳 count(字段)、count(主键)、count(1)、count(*)的区别

  • count()是一个聚合函数,对于返回的结果集一行行地判断,如果 count 函数中参数对应的字段值不是 Null,累计值就加 1,否则不加,最后返回累计值。
  • count(*)、count(1)和count(主键 id) 都返回满足条件的结果集的总行数;而 count(字段),则返回字段中值不为 Null 的总行数。

 以weibo_user表为例,表中共有99条数据,created_at字段值不为Null的数据有6条


  • count(*)查询到全部数据


  • count(id)查询到全部数据


  • count(1)查询到全部数据


  • count(create_at)只查询到6条数据,值不为NULL的数据


🐳 执行效率

  • 如果数据表没有主键,那么count(1)比count()快;
  • 如果有主键,那主键作为count的条件也比count()要快;
  • 如果表只有一个字段,count(*)就是最快的。

本文转载自: https://blog.csdn.net/weixin_42250835/article/details/126046344
版权归原作者 不渴望力量的哈士奇 所有, 如有侵权,请联系我们删除。

“MySQL - count(字段)、count(主键)、count(1)、count(*)的区别”的评论:

还没有评论