mysql tinyints之和

tct7dpnv  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(304)

我有一张五列的table。
如果查询某一行,得到的结果如下:

select flag1, flag2, flag3, flag4, flag5 from mytable where whatever;

结果集(图像)

我需要的是把它们当作整数来求和。在这个例子中,输出是4个1和1个0,所以我想得到一个4。
此查询不起作用:

select sum(flag1, flag2, flag3, flag4, flag5) from mytable where whatever;

这也不是:

select sum(flag1, flag2, flag3, flag4, flag5) from mytable where whatever;
0pizxfdo

0pizxfdo1#

你可以用 + 运算符对行的值求和。

SELECT flag1 + flag2 + flag3 + flag4 + flag5
       FROM mytable;
wr98u20j

wr98u20j2#

select sum(flag1 + flag2+ flag3+ flag4+ flag5) sumflag  from mytable

结果:

| sumflag |
|---------|
|       4 |

测试演示
ddl地址:

CREATE TABLE mytable
    (`flag1` tinyint, `flag2` tinyint, `flag3` tinyint, `flag4` tinyint, `flag5` tinyint)
;

INSERT INTO mytable
    (`flag1`, `flag2`, `flag3`, `flag4`, `flag5`)
VALUES
    (1, 1, 1, 0, 1)
;
omqzjyyz

omqzjyyz3#

从mytable group by id中选择sum(flag1+flag2+flag3+flag4+flag5)作为total,id

k2fxgqgv

k2fxgqgv4#

你必须投 tinyint 进入 int 要使用的 SUM() . 试试这个:

select sum(cast (flag1 as int),cast (flag2 as int) ...

相关问题