这是因为该查询使用了 GROUP BY 子句,它会将结果按照 name 分组并统计每组的数量,而表中只有一条数据满足条件,因此只有一组,即 name 等于 a 的组。由于该组中的数据被删除了,因此不会被计入结果中,导致结果为 0。解决方法是添加一个子查询,先查询出所有未删除的数据的 name,再根据这些 name 进行分组统计数量。具体的 SQL 语句如下:

SELECT IFNULL(count(*), 0) FROM ( SELECT DISTINCT name FROM A WHERE is_deleted = 'N' ) ep LEFT JOIN A a ON ep.name = a.name AND a.is_deleted = 'N' GROUP BY ep.name;

A表中只有一条数据 name 等于 a is_deleted 等于 Y。SELECT IFNULLcount 0 FROM A ep WHERE epis_deleted = N GROUP BY epname; 依然不返回 0

原文地址: https://www.cveoy.top/t/topic/bStA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录