在mysql表中计算多列总和等于0的记录数

时间:2015-09-17 14:25:34

标签: php mysql

我有一张表,里面有不同仓库列的库存。 我需要找出符合以下条件的记录。它是一个mysql数据库。

计算多列总和等于0的记录数。

表的结构

Stock A | Stock B | Stock C | Stock D
0       | 1       | 0       | 0
0       | 0       | 0       | 0
1       | 1       | 1        | 1

此处输出为1。

3 个答案:

答案 0 :(得分:0)

这应该很简单:

create table test (stock_a int, stock_b int, stock_c int, stock_d int);
insert into test values (0,1,0,0), (0,0,0,0), (1,1,1,1);

select count(*) from test where stock_a + stock_b + stock_c + stock_d = 0

Result:
count(*)
--------
1

答案 1 :(得分:0)

多个列的总和在where子句中,因此Count(1)仅计算所有字段的summ为零的位置。

Select Count(1) From warehouse 
Where (`Stock A` + `Stock B` + `Stock C` + `Stock D`) = 0

答案 2 :(得分:0)

我认为你在yourtable中没有负面价值,那么你可以这样做:

SELECT COUNT(*) As cnt
FROM yourtable
WHERE (Stock_A, Stock_B, Stock_C, Stock_D) = (0, 0, 0, 0)