gpt4 book ai didi

python - 用循环更新表

转载 作者:行者123 更新时间:2023-11-29 11:44:58 26 4
gpt4 key购买 nike

您好,我想通过在每次迭代中选择该列中的最小值并将其增加 10% 直到列的总和变为特定值(例如 3000)来更新列

UPDATE db1.tb1 a 
SET a.col1 = IF(SUM(a.col1) < 3000, a.col1 + ( a.col1 / 10 ), a.col1)
WHERE a.col1 IN (SELECT Min(b.col1)
FROM (SELECT col1,
col2
FROM db1.tb1),
b)

最佳答案

我认为您无法在单个 update 语句中完成此操作。可以重复循环。每次迭代看起来都更像这样:

update tb1.tbl t cross join
(select min(col1) as min1, sum(col1) as sum1
from tb1.tbl
) tt
set col1 = 1.1 * col1
where tt.sum1 < 3000 and t.col1 = tt.min1
limit 1;

请注意限制 1,因此仅更新一行。然后,您可以计算修改的行数(例如使用mysql_affected_rows())。当为0时,则停止。

如果您想在 MySQL 中进行循环,您还可以在 MySQL 存储过程中进行设置。

关于python - 用循环更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115009/

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