首页 > 解决方案 > MySql - 在选择查询中使用变量,而 where 条件又增加了一行

问题描述

我在选择查询中使用变量来计算一个值,并根据我在查询中添加 where 条件的值。

无论字段值是什么,我的问题都会再增加一行。

例如,如果该表中所有行的字段值为 1,那么它会给出 20 加上另外一行 21。

请帮助解决这个问题。

如何根据计算的值添加条件,因为我不能使用 SUM,它将聚合并仅返回一个值。

下面是我使用的示例查询。

SET @var = 0;
SELECT  @var := @var + field FROM table1 WHERE  @var <= 20

标签: mysqlvariables

解决方案


MySql 版本 5.5.45

检查

SELECT t1.(fieldset)
FROM source_table t1
JOIN source_table t2 ON t1.ordering_field <= t2.ordering field
GROUP BY t1.(fieldset)
HAVING SUM(t2.amount_field) <= @needed_sum
ORDER BY SUM(t2.amount_field) DESC [LIMIT 1]

推荐阅读