gpt4 book ai didi

mysql - 如何使用 Mysql 更新现有表的减去值

转载 作者:行者123 更新时间:2023-12-02 02:39:40 24 4
gpt4 key购买 nike

我的表中有三列,列的名称是 date_time、total、sub,我想通过使用 mysql 按 date_time 列的顺序减去上一行总值和下一行总值来更新现有的子列。我不知道如何实现这个结果。下面给出数据

   date_time           total     sub

2019-03-07 12:32:10 50 0
2019-03-07 12:34:22 60 0
2019-03-07 12:37:17 75 0
2019-03-07 12:44:10 100 0

我想更新上面的记录为

  date_time           total     sub

2019-03-07 12:32:10 50 0
2019-03-07 12:34:22 60 10
2019-03-07 12:37:17 75 15
2019-03-07 12:44:10 100 25

请指导我实现这个结果

最佳答案

试试这段代码

update your_table_name U left join 
(select
(CASE
WHEN @pev_row_value = 0 THEN 0
ELSE (`your_table_name `.total - @pev_row_value)
END) as sub_result,
(@pev_row_value := `your_table_name `.total ) as current_row,
users.*
FROM `your_table_name ` cross join
(select @pev_row_value := 0) params
order by date_time asc) A on U.date_time=A.date_time
set U.sub = A.sub_result

希望一切顺利。在 CASE WHEN ELSE 语句中设置用于更新的 sub_result 和 pev_row_value 存储总列值的前一行的值。然后将整个重新生成的值作为一个新名称为A的表,并通过加入新表A来更新最终值。

谢谢

关于mysql - 如何使用 Mysql 更新现有表的减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60574345/

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