gpt4 book ai didi

mysql - 将列值修改为按顺序排列

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

我有一个非常特殊的问题,想用 SQL 来解决。我需要确保同一 QuestionID 的 optionOrder 从 0-[任意数字]。

例如,questionID = 18386 的行,其optionOrder 现在是1,2,3,4。它们必须是0,1,2,3

此外,如果行是这样的1,2,4,它需要是0,1,2

对于语法错误,我深表歉意。

enter image description here

最佳答案

在 MySQL 中,您可以使用变量来做到这一点:

set @rn := 0;
set @q := -1;

update table t
set optionorder = (case when @q = questionid then (@rn := @rn + 1)
when (@q := questionid) is not null then (@rn := 0)
else -1 -- should never happen
end)
order by questionid, optionorder;

由于order by,需要在update之外设置变量。

关于mysql - 将列值修改为按顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32097537/

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