mysql 使用单个查询计算多种类型

med*_*edk 0 mysql sql

我有一个表“用户”,其中每个用户都有一个包含值“1”或“2”或“3”的“状态”列;

现在,通过单个 mysqli 查询,我只想计算有多少 status = 1 的用户、有多少 status = 2 的用户以及有多少 status = 3 的用户

注意:查询必须仅计数,除了每个状态的数量之外,无需选择或输出任何数据。

我在这里发现了涵盖几乎相同主题的其他问题,但它们并不完全相同。

谢谢。

Jan*_*Jan 5

这个怎么样:

SELECT 
  count(case when status = 1 then 1 else null end) AS STATUS_1,
  count(case when status = 2 then 1 else null end) AS STATUS_2,
  count(case when status = 3 then 1 else null end) AS STATUS_3
FROM users;
Run Code Online (Sandbox Code Playgroud)

count 只会计算非空条目,而 case-when 也适用于其他数据库。