MySQL使用 COUNT() 一次统计不同条件的数量

 MySQL  2021-02-05  admin  3617  4882

MySQL使用 COUNT() 一次统计不同条件的数量

SELECT
	COUNT( `label_id` = 0 OR NULL ) AS `count_0`,
	COUNT( `label_id` = 1 OR NULL ) AS `count_1`,
	COUNT( `label_id` = 2 OR NULL ) AS `count_2`,
	COUNT( `label_id` = 3 OR NULL ) AS `count_3`,
	COUNT( `label_id` = 4 OR NULL ) AS `count_4`,
	COUNT( `label_id` = 6 OR NULL ) AS `count_6`,
	u_id 
FROM
	`user` 
WHERE
	1

COUNT( `label_id` = 0 OR NULL )  OR NULL 的含义:

在count() 函数计数时,只有遇到null,MySQL才会认为条件为假,即:不统计这条数据。Or和平常的操作符一样,第一个条件是true就是不执行or后面的条件,如果第一个条件不为true,那就不需要统计这条数据,所以就需要加上or null,告诉MySQL不需要统计这条数据;


Snipaste_2021-01-29_16-44-01.png

如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


Systemd Web 管理系统:简化服务管理

# Systemd Web Systemd Web 是一个 Systemd 的 Web UI 管理系统,通过直观的界面和易用的操作,让用户能够轻松地管理 Linux 系统和服务。该项目旨在简化 Systemd 的使用,使得无论是专业的系统管理员还是普通的用户,都能够方便地对系统进行操作。 ## [github地址] (https://github.com/topascend/systemd

systemctl 使用

Systemd是Linux系统工具,用来启动守护进程,已成为大多数发行版的标准配置。而systemctl是Systemd的主命令,用于管理系统。其实我们大部分服务都有使用systemctl管理,比如MySQL、Nginx等等。常见配置如下:[Unit] #单元描述 Description=GFAPP #在什么服务启动之后再执行本程序 After=mysql.service [Serv

go 的 Pool池对象 sync.Pool 创建mysql连接池

//在这个例子中,我们创建了一个sync.Pool,其中包含一个New函数,该函数创建一个MySQL连接 //在someFunction中,我们使用dbPool.Get()从池中获取一个MySQL连接 //然后我们使用连接进行一些操作,最后使用dbPool.Put()将连接放回池中 //我们可以通过设置dbPool的大小来初始化连接池中的连接数量 //例如,如果我们想要初始化10个连接,我

go 结构体自实现构造函数

Go没有自带的构造函数,采用自实现方式1结构体不复杂,可以返回结构体类型,值拷贝性能开销小funcNewPerson(namestring,ageint8)Person{ returnPerson{ name:name, age:age, } }方式2结构体复杂,得返回结构体指针类型,避免值拷贝产生的性能开销funcNewPerson(namestring,ageint8)*Person