mysql - MySql - 在选择查询中使用变量,而 where 条件又增加了一行
问题描述
我在选择查询中使用变量来计算一个值,并根据我在查询中添加 where 条件的值。
无论字段值是什么,我的问题都会再增加一行。
例如,如果该表中所有行的字段值为 1,那么它会给出 20 加上另外一行 21。
请帮助解决这个问题。
如何根据计算的值添加条件,因为我不能使用 SUM,它将聚合并仅返回一个值。
下面是我使用的示例查询。
SET @var = 0;
SELECT @var := @var + field FROM table1 WHERE @var <= 20
解决方案
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]
推荐阅读
- xml - XSL Xpath 获取最后一个元素且不等于 0
- java - ? 不替换为 $$ 中的值
- java - 为什么 restful 服务需要框架
- java - 删除 EFS 中的文件时出现过时文件句柄错误
- html - 是否可以更改 Shiny Dashboard 标题中单个字符的颜色?
- c# - SimpleStub 中的 MockBehavior.Loose 和 MockBehavior.Strict 有什么区别?
- leaflet - 设置dashArray时如何使用两种颜色设置Leaflet折线?
- javascript - 桌面 Chrome 中的图像加载
- javascript - 无需使用 Google Analytics 进行身份验证即可显示访问者数量
- android - 如何在cardview中插入背景图片?