Mysql 罐头之和

Mysql 罐头之和,mysql,sql,tinyint,Mysql,Sql,Tinyint,我有一张五列的桌子 如果我对一行进行查询搜索,会得到如下结果: 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(f

我有一张五列的桌子

如果我对一行进行查询搜索,会得到如下结果:

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;
可以使用+运算符对行的值求和

SELECT flag1 + flag2 + flag3 + flag4 + flag5
       FROM mytable;
可以使用+运算符对行的值求和

SELECT flag1 + flag2 + flag3 + flag4 + flag5
       FROM mytable;
要使用SUM,您必须将tinyint转换为int。试试这个:

select sum(cast (flag1 as int),cast (flag2 as int) ...
要使用SUM,您必须将tinyint转换为int。试试这个:

select sum(cast (flag1 as int),cast (flag2 as int) ...
结果:

DDL:

结果:

DDL:



选择sumflag1+flag2+flag3+flag4+flag5作为总计,按id从mytable group中选择id

选择sumflag1+flag2+flag3+flag4+flag5作为总计,按id从mytable group中选择id

数据库引擎、SQL Server、MySQL使用什么?你就不能把你的小数字转换成整数并求和吗?为什么我会得到-1?我的问题怎么了?你好。数据库是什么?现在我明白了:MySQL不知道它很重要。你用什么作为数据库引擎,SQL Server,MySQL?你就不能把你的小数字转换成整数并求和吗?为什么我会得到-1?我的问题怎么了?尊敬的。数据库是什么?现在我明白了:MySQL不知道它的重要性。你可能想要这个有粘性的答案或mankowitz答案。关键是SUM可以跨多行数据工作。+在同一行中添加数字。请确保测试此方案。。255+255+255+255+255+255,这样你就可以看到你是否需要从极小的整数转换为整数。还要确保你真的不想要这个…flag1 | flag2 | flag3 | flag4 | flag5 aka。按位或mySql可能是“|”。按位或您可能需要这个粘性位答案或mankowitz答案。关键是SUM可以跨多行数据工作。+在同一行中添加数字。请确保测试此方案。。255+255+255+255+255+255,这样你就可以看到你是否需要从极小的整数转换为整数。还要确保你真的不想要这个…flag1 | flag2 | flag3 | flag4 | flag5 aka。按位或mySql可能是“|”。对于按位的ORBesides,不需要强制转换。这是默认情况下发生的。此外,不需要强制转换。这是默认情况下发生的。
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)
;