1.前言

相信大多数有一定经验的phper都碰到过这个问题,count(*)和count(1),以及count('id')列有什么区别呢,这三者到底有什么不同呢,今天我将为此做深层的剖析,各位猿友们,注意看哈。。。。。

2.问题详解

count(*)和count(1)其实并没有区别,这两者都会将表中所有行都算进来,也就是该表的总行数

实例如下:

两者的结果相同并没有区别,这时因为count()中的值均不是null,只要不是null,就会选取所有的行,而当用count(null)查询时结果为0,如下:

原因是当count()括号内的值为null时,mysql内部自动返回0,不进行进一步查询。

以上是非null且不是表中的列名的情况,下面说说count(id)和count(1),以及count(*)这两者的区别。

具体区别我们通过一个实例可以看得更清晰:t是一个表,id为表中的唯一列,t表中有三条数据如下:

下面看一下count(id)和count(1),以及count(*)两者的区别,如下图:

有结果可知:count(列名)时,如果该列的值为null时,改行不计入count总数中,这也就是count(列名)和count(1),count(*)等其他count(非列名和非null)的区别

3.总结

此处设定count(a),其中a为变量,可以为各种值,下面根据a的不同值,得出不同的count(a)的结果

1)当a = null时,count(a)的值为0;

2)当a != null 且不是表的列名的时候,count(a)为该表的行数;

3)当a是表的列名时,count(a)为该表中a列的值不等于null的行的总数,它和2)中的差值就是该表中a列值为null的行数

-----------------------------------------------------------------------------------------------------------The end------------------------------------------------------------------------------------------

sql语句中count(*),count(1),count(id)区别详解相关推荐

  1. SQL Server中通用数据库角色权限的处理详解

    SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...

  2. python frozenset_Python中set与frozenset方法和区别详解

    set(可变集合)与frozenset(不可变集合)的区别: set无序排序且不重复,是可变的,有add(),remove()等方法.既然是可变的,所以它不存在哈希值.基本功能包括关系测试和消除重复元 ...

  3. html offsetwidth 字符串宽度,基于js中style.width与offsetWidth的区别(详解)

    作为一个初学者,经常会遇到在获取某一元素的宽度(高度.top值...)时,到底是用 style.width还是offsetWidth的疑惑. 1. 当样式写在行内的时候,如 时,用 style.wid ...

  4. sql语句中的on和where的区别

    sql语句中的on和where都是表示搜索条件. 在sql中有三种连接查询, cross join,inner join,和outer join 其中 cross join 和 inner join ...

  5. SQL语句中union all和union的区别以及用法

    起因 一次渗透过程中目标使用的SQL Server有联合注入,发现使用union all 不报错,union报错,同时还有一个就是字段的类型,发现类型不对也会报错,贴张图 union+all+sele ...

  6. java中public_java中public class与class的区别详解

    以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...

  7. Burp Suite爆破模块中的四种模式的区别详解和演示(暴力破解)

    BrupSuite爆破的四种模式详解 最近看了好多关于暴力破解的博客,其中用的最多的工具就是bp了,但是好多都是一上来给了执行步骤,却没有对爆破的这几个模式选择进行解释,所以今天萌新写个纪录,来阐明这 ...

  8. sql语句中`和'两个符号的区别

    $sql="SELECT * FROM `j_contents` WHERE `type` = 'post' AND `title` like '%$keyword%'"; 或 $ ...

  9. SQL数据库不用SQL语句能显示全表的内容_详解mysql数据库sql优化技巧总结

    概述 关于SQL优化的教程很多,但是比较杂乱.所以抽空整理了一下,也写出来跟大家分享一下.以下主要针对MySQL数据库,Oracle数据库也可以参考. 优化技巧总结 1.建索引 对查询进行优化,要尽量 ...

最新文章

  1. OpenCV(项目)车牌识别2 -- 车牌字符分割(直方图)
  2. SWPU 2021年团队程序设计天梯赛选拔赛 题解
  3. python入门004~创建属于自己的第一个python3项目~基础知识的讲解
  4. 解析JVM线程同步机制
  5. linux ftp 553,修复使用vsftp出错553 Could not create file的有效方法
  6. 在ubuntu上实现基于webrtc的多人在线视频聊天服务
  7. Java春招实习面试经验汇总,面试篇
  8. ZooKeeper入门指南
  9. 继承,经典类与新式类的MRO,C3算法,super
  10. C语言编写一个计算器(附全源代码)
  11. librdkafka问题小记
  12. javaScript、jQuery、html实现九宫格拼图游戏(逻辑及源码)
  13. App自动绑定的五大应用场景
  14. mp4播放器带后台开源源码
  15. React 模板封装之基础模板 BaseTable
  16. 平面设计基本艺术表现形式有哪些
  17. window 系统目录和程序 system32 syswow64 无法加载dll
  18. 保留小数 Java Decimals
  19. php m3u8cms,苹果cms V8和V10整合Dplayer播放器插件支持mp4和m3u8格式播放
  20. 用canvas制作的躲避球小游戏html5源码

热门文章

  1. Linux系统中VI或VIM输入时小键盘无法使用
  2. vb常用内部函数(四):随机数函数
  3. Arduino火焰传感器(红外线接收器)的使用
  4. 添加网站验证,让搜索引擎收录你的网站
  5. 真正程序员的工资是怎样的?
  6. 数通 | 静态路由表的配置(含负载分担、路由备份)
  7. 云环境下搭建FTP服务器(不使用21端口)
  8. 利用GitHub Actions每天自动从Pixiv爬虫日推图片并存放到仓库
  9. 基于MATLAB 的运动模糊图像复原
  10. JAVA判断两个数是否亲和数_亲和数