当前位置: 首页 > news >正文

MySQL中count(*)与count(字段区别)

核心规则

表达式 统计规则
COUNT(*) 统计所有行数(包括所有字段为NULL的行)。
COUNT(字段) 仅统计该字段不为NULL的行数(若字段为NULL则自动忽略该行)。

误区

A表连接B表,若A和B是一对多的关系时,会出现

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3370f974a0274cb2b234c387e5610d42.png

的结果,我们都知道A left join B时A的结果是一定存在的,当一对多时就会A有多个相同的结果,这个时候如果A left join B的同时在后面补上删除掉B1的条件,那么结果就只有一行了,像这种情况下左边的A1同样也就会少一行
在这里插入图片描述
我想表达的意思时,当在连接条件主动额外删除B表的数据时,实际上总体结果数量也被删除了(删除了一整行,除非下面在一条数据的情况下才会保留左表数据,因为只剩一行了),像这种情况发生时,你不管count()还是count(B表字段)都是一样的。因为丢失的数据在连接条件就被删除掉了,除非在一条数据的情况下你删除右表某些数据可能导致结果不相同,比如一个对一个的结果集中
在这里插入图片描述
当你A left join B on 连接条件 and 删除B1的条件 时,结果才会变成
在这里插入图片描述
只有在这种情况下count(
)和count(B表NULL的字段)才有区别

相关文章:

  • c_cpp_properties.json等三个文件解释
  • Unity中刚体撞墙抖动的原因和本质
  • 【算法】贪心
  • 使用Docker部署前端应用到生产环境
  • Spring生态下的中台架构设计:如何构建可扩展业务系统?
  • MOEFeedForward 模块
  • MongoDB 集群模式简单了解
  • Elasticsearch 7.x入门学习-系统架构与工作流程
  • 【商城实战(28)】揭秘推荐系统集成,开启个性化购物新时代
  • vscode 配置golang开发环境
  • ctf-web: xss 任意位置插入情况绕过 DOMPurify -- tpctf layout
  • Flutter 学习之旅 之 flutter 全屏背景图设置功能的简单实现
  • 1Panel 搭建DeepSeek-R1,开启AI自由新体验
  • Anaconda安装页面四个选项的作用
  • 【高级前端】为什么computed不起作用?有哪些使用computed 的禁忌?
  • Fiora聊天系统本地化部署:Docker搭建与远程在线聊天的实践指南
  • linux配置zabbix-agent
  • ODA模拟器实验系列之一:准备工作
  • 跟网型逆变器小干扰稳定性分析与控制策略优化simulink仿真模型和代码(包含完整仿真报告)
  • failed to load elasticsearch nodes
  • 有域名和主机怎么做网站/国家职业技能培训学校
  • 网站开发的开发语言/如何快速被百度收录
  • 前端做网站要会什么/什么样的人适合做策划
  • 如何给网站续费/学大教育培训机构电话
  • 交友小程序开发/seo关键词排名系统
  • 公司简介范本/东营seo网站推广