gpt4 book ai didi

mysql - 如何以相反的顺序更新MYSQL表中的其他字段

转载 作者:行者123 更新时间:2023-11-30 22:31:06 25 4
gpt4 key购买 nike

我有一个包含这样字段的表

lev_1_id,lev_1_seq,lev_1_new_seq,lev_2_id,lev_2_seq,lev_2_new_seq

284e777e,1,null,b4dce5bb,1,null<br>
284e777e,1,null,dfd158ed,2,null<br>
284e777e,1,null,fedbf511,3,null<br>
0c7e0938,2,null,2333f431,1,null<br>
0c7e0938,2,null,808734fa,2,null<br>
0c7e0938,2,null,2504e0de,3,null<br>

现在我想通过分别反转 lev_1_seq 和 lev_2_seq 中的值来更新 lev_1_new_seq 和 lev_2_new_seq。

更新字段后,表格应如下所示:

lev_1_id,lev_1_seq,lev_1_new_seq,lev_2_id,lev_2_seq,lev_2_new_seq

284e777e,1,2,b4dce5bb,1,3<br>
284e777e,1,2,dfd158ed,2,2<br>
284e777e,1,2,fedbf511,3,1<br>
0c7e0938,2,1,2333f431,1,3<br>
0c7e0938,2,1,808734fa,2,2<br>
0c7e0938,2,1,2504e0de,3,1<br>

谁能帮我更新字段?

提前致谢!

最佳答案

如果初始排序是通过 id 完成的,则此解决方案有效。 2 - 您更新的列,1 - 需要倒序的列,tmp - 表,id - 唯一键,初始排序列。

BEGIN
DECLARE p INT;
DECLARE v INT;
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
SELECT COUNT(*) FROM `tmp` INTO n;
SET i=0;
WHILE i<n DO
select `1` from `tmp` order by `id` desc limit i,1 into p;
select `id` from `tmp` order by `id` limit i,1 into v;

update `tmp` set `2` = p where `id` = v;
SET i = i + 1;
END WHILE;
End

对于你的表:1 = lev_1_seq,2 = lev_1_new_seq,id = lev_1_id

关于mysql - 如何以相反的顺序更新MYSQL表中的其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33889963/

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