gpt4 book ai didi

mysql - 如何自动增加具有相同值的行的列

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

好的,我这里有一个 MySQL DB 示例

id | groupid | name
1 1 Bob
2 1 Some Name
3 3 /dev/null
4 3 Moo
5 4 Jane

现在,使用什么 SQL 查询可以增加 groupid 列,使其显示如下:

id | groupid | name
1 1 Bob
2 1 Some Name
3 2 /dev/null
4 2 Moo
5 3 Jane

最佳答案

您可以使用变量:

  select t.id, t.name,
(@rn := if(@g = groupid, @rn + 1,
if(@g := groupid, 1, 1)
)
) as groupid
from t cross join
(select @g := 0, @rn := 0) params
order by t.group_id, t.id;

如果您确实想要更改这些值,可以将类似的逻辑合并到更新中。

编辑:

更新中使用上述内容的最简单方法是将其加入:

update t join
(select t.id, t.name,
(@rn := if(@g = groupid, @rn + 1,
if(@g := groupid, 1, 1)
)
) as new_groupid
from t cross join
(select @g := 0, @rn := 0) params
order by t.group_id, t.id
) tt
on t.id = tt.id
set t.groupid = tt.new_groupid;

关于mysql - 如何自动增加具有相同值的行的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40032623/

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