我正在使用此查询:
SELECT SUM(voc=1) AS s, SUM(voc=2) AS d, SUM(voc=3) AS p FROM `pl`;
但现在我需要修改此查询,因此当 voc
等于多个数字时,它会进行 SUM
:
SELECT SUM ( voc = 1 OR voc = 7 OR voc = 3 ) as `s` FROM `pl`;
不幸的是,上面的内容无法正常工作,我已经读到这可以使用CASE
来完成,但我对此的了解太少......
最佳答案
SELECT SUM ( CASE WHEN voc = 1 OR voc = 7 OR voc = 3 THEN 1 ELSE 0 END) as `s` FROM `pl`;
UPD 正如 @Raul 在评论中所述 - WHERE
应该更有效,如下所示:
SELECT COUNT(*) AS `s` FROM `p1` WHERE voc IN (1,3,7);
UPD2 将 Sum 更改为 Count - 感谢 @newtower
关于mysql - 对具有多个 ID 的行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870001/