MySQL:在一个查询中统计两件事情?

neb*_*ebs 2 mysql count

我的一个表中有一个"布尔"列(值为0或1).

我需要得到两个计数:布尔值设置为0的行数和设置为1的行数.目前我有两个查询:一个计数1,另一个计算0.

在使用WHERE条件计算行时,MySQL是否遍历整个表?我想知道是否有一个查询允许两个计数器根据不同的条件?

或者有没有办法获得WHERE条件计数的总计数?这就足够了,因为我只需要从另一个中减去一个计数(由于列的布尔性质).没有NULL值.

谢谢.

RaY*_*ell 7

您可以按布尔列对记录进行分组,并为每个组获取计数.

 SELECT bool_column, COUNT(bool_column) FROM your_table
 WHERE your_conditions
 GROUP BY bool_column
Run Code Online (Sandbox Code Playgroud)

这显然不仅适用于bool列,还适用于其他数据类型(如果需要).