首页 > 解决方案 > Mysql选择总和等于的行

问题描述

我有一个像这样的表A:

ID | AMOUNT
1  | 10
2  | 30
3  | 40

我想找到金额之和等于一个值的行。

例如,如果我将总数设为 70,我的查询必须返回 id 2 和 3

标签: mysql

解决方案


下面的查询将返回总和等于您传递的值的两行列表。如果有多个与总和匹配的行组合,它将返回多个列表。在Fiddle上检查这个。您只需要传递所需的总和而不是70

SELECT If((t1.amount+t2.amount)=6,CONCAT(LEAST(t1.id,t2.id),',',GREATEST(t1.id,t2.id)),"") AS sumIds 
FROM testSum t1, testSum t2
WHERE (t1.amount+t2.amount)=6
AND t1.id!=t2.id
GROUP BY sumIds

推荐阅读