gpt4 book ai didi

mysql - 总和列查询中多一行

转载 作者:行者123 更新时间:2023-11-29 08:24:18 25 4
gpt4 key购买 nike

我正在构建以下查询:

SELECT taskid
FROM tasks, (SELECT @var_sum := 0) a
WHERE (@var_sum := @var_sum + taskid) < 10

结果:

taskid
1
2
3

现在它返回给我的所有行的总和为 <10,我想在结果中包含一个额外的行(10 可以是任何值,它只是一个示例值)

所以,期望的结果:

taskid
1
2
3
4

最佳答案

我会这样做:

SELECT t.taskid
FROM tasks t
CROSS
JOIN (SELECT @var_sum := 0) a
WHERE IF(@var_sum<10, @var_sum := @var_sum+t.taskid, @var_sum := NULL) IS NOT NULL

这是检查@var_sum的当前值是否小于10(或小于任何值,或小于或等于任何值。如果是,我们将taskid值添加到@var_num ,并且该行包含在结果集中。但是当@var_sum的当前值不满足条件时,我们为其分配NULL,并且该行不包含在结果集中。

注意不保证从tasks 表返回的行的顺序。 MySQL 可以以任意顺序返回行;在您的测试中它可能看起来是确定性的,但这可能是因为 MySQL 针对相同的数据选择相同的访问计划。

关于mysql - 总和列查询中多一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com