-- mysql -- SQL文件 DROP TABLE IF EXISTS `stutad`; CREATE TABLE `stutad` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `status` int(1) DEFAULT NULL COMMENT '0通过1不通过', `name` varchar(30) DEFAULT NULL COMMENT '审核名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='统计结果集查询'; -- 执行sql SELECT SUM(CASE WHEN `status` = 0 THEN 1 ELSE 0 END) AS '通过的书名', SUM(CASE WHEN `status` = 1 THEN 1 ELSE 0 END) AS '未通过的书名' FROM `stutad`; -- 或者 SELECT COUNT(CASE WHEN `status` = 0 THEN 1 ELSE 0 END) AS '通过的书名', COUNT(CASE WHEN `status` = 1 THEN 1 ELSE 0 END) AS '未通过的书名' FROM `stutad`; -- 解释 当status 等于 0的时候会返回1,否则返回0,而sum会累加,因为0累加之后还是0,所以只会返回1的累加之后才会改变值。