MySQL对多个值求和
我对MySQL查询有问题。我有:MySQL对多个值求和,mysql,sum,Mysql,Sum,我对MySQL查询有问题。我有: id, value(float), value2(enum) 1 , 100, -1 1 , 100, 1 2 , 100, -1 3 , 100, 1 我需要输出: 1, 0 2, -100 3, 100 不行 SELECT id, SUM(value*value2) as vysledek FROM table group by id 谢谢您的帮助。这里的问题是您使用的是e
id, value(float), value2(enum)
1 , 100, -1
1 , 100, 1
2 , 100, -1
3 , 100, 1
我需要输出:
1, 0
2, -100
3, 100
不行
SELECT id, SUM(value*value2) as vysledek
FROM table
group by id
谢谢您的帮助。这里的问题是您使用的是
enum
类型。转换为数字时,enum
s将根据其索引进行转换
如果您的字段是enum('1','-1')
,则1
将转换为1
,而-1
将转换为2
。为什么?因为这是它们在enum
字段中的索引
我建议您在此处使用数字类型而不是enum
。它将为您省去麻烦,并使您的查询变得更加友好
如果必须将其保留为枚举
,则可以通过执行以下操作将其“强制转换”为数字:
SELECT id, SUM(value * CAST(CAST(value2 AS CHAR) AS SIGNED))
您需要先将其转换为字符串,然后再转换为数字。那么,该查询会输出什么?因为它对我有用:表名
table
可能是错误的,我猜它是一个保留字。数据库中的字段是什么类型的?它们是int
还是varchar
(或其他东西)?表:s30.postimg.org/swbxhqiup/img1.png结果:s30.postimg.org/56mht1khd/result.png、float和enum是columns@JakubKu切拉:这就是问题所在。枚举
。您将其视为int
,但它不是。我建议不要使用enum
字段。感谢您帮助解决我的问题。