sql语句中count(*),count(1),count(id)区别详解
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)区别详解相关推荐
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- python frozenset_Python中set与frozenset方法和区别详解
set(可变集合)与frozenset(不可变集合)的区别: set无序排序且不重复,是可变的,有add(),remove()等方法.既然是可变的,所以它不存在哈希值.基本功能包括关系测试和消除重复元 ...
- html offsetwidth 字符串宽度,基于js中style.width与offsetWidth的区别(详解)
作为一个初学者,经常会遇到在获取某一元素的宽度(高度.top值...)时,到底是用 style.width还是offsetWidth的疑惑. 1. 当样式写在行内的时候,如 时,用 style.wid ...
- sql语句中的on和where的区别
sql语句中的on和where都是表示搜索条件. 在sql中有三种连接查询, cross join,inner join,和outer join 其中 cross join 和 inner join ...
- SQL语句中union all和union的区别以及用法
起因 一次渗透过程中目标使用的SQL Server有联合注入,发现使用union all 不报错,union报错,同时还有一个就是字段的类型,发现类型不对也会报错,贴张图 union+all+sele ...
- java中public_java中public class与class的区别详解
以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...
- Burp Suite爆破模块中的四种模式的区别详解和演示(暴力破解)
BrupSuite爆破的四种模式详解 最近看了好多关于暴力破解的博客,其中用的最多的工具就是bp了,但是好多都是一上来给了执行步骤,却没有对爆破的这几个模式选择进行解释,所以今天萌新写个纪录,来阐明这 ...
- sql语句中`和'两个符号的区别
$sql="SELECT * FROM `j_contents` WHERE `type` = 'post' AND `title` like '%$keyword%'"; 或 $ ...
- SQL数据库不用SQL语句能显示全表的内容_详解mysql数据库sql优化技巧总结
概述 关于SQL优化的教程很多,但是比较杂乱.所以抽空整理了一下,也写出来跟大家分享一下.以下主要针对MySQL数据库,Oracle数据库也可以参考. 优化技巧总结 1.建索引 对查询进行优化,要尽量 ...
最新文章
- OpenCV(项目)车牌识别2 -- 车牌字符分割(直方图)
- SWPU 2021年团队程序设计天梯赛选拔赛 题解
- python入门004~创建属于自己的第一个python3项目~基础知识的讲解
- 解析JVM线程同步机制
- linux ftp 553,修复使用vsftp出错553 Could not create file的有效方法
- 在ubuntu上实现基于webrtc的多人在线视频聊天服务
- Java春招实习面试经验汇总,面试篇
- ZooKeeper入门指南
- 继承,经典类与新式类的MRO,C3算法,super
- C语言编写一个计算器(附全源代码)
- librdkafka问题小记
- javaScript、jQuery、html实现九宫格拼图游戏(逻辑及源码)
- App自动绑定的五大应用场景
- mp4播放器带后台开源源码
- React 模板封装之基础模板 BaseTable
- 平面设计基本艺术表现形式有哪些
- window 系统目录和程序 system32 syswow64 无法加载dll
- 保留小数 Java Decimals
- php m3u8cms,苹果cms V8和V10整合Dplayer播放器插件支持mp4和m3u8格式播放
- 用canvas制作的躲避球小游戏html5源码