gpt4 book ai didi

MySQL-如何通过其他唯一列设置一列数据

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

我有一个包含 3 列的 MySQL 表:标题 | element_id | id

id 已自动递增为 int。

我想根据title的描述递增element_id,这样如果title的值是唯一的,则按照以下顺序idelement_id 将从 1 增加到 ...

表格外观示例:

title, element_id, id
Baker, 1, 1
Baker, 2, 2
Plumber, 1, 3
Plumber, 2, 4
Plumber, 3, 5
Doctor, 1, 6

我发现了一些关于如何在知道标题名称时执行此操作的堆栈帖子,例如执行类似的操作

UPDATE table_name SET element_ID = 1 
WHERE title = 'Baker';

但在这种情况下,没有自动增量,我们必须知道 title 的名称才能更改表。但是,如何使用任何 title 名称来完成此操作呢?

此外 - 为了使这个问题变得更容易,所有标题都在表格中组织在一起(即没有混合标题,如下所示)

title, element_id, id
Baker, 1, 1
Plumber, 1, 2
Baker, 2, 3
Plumber, 2, 4
Plumber, 3, 5
Doctor, 1, 6

最佳答案

在 MySQL 8+ 中,您可以使用窗口函数:

update table_name t join
(select t.*, row_number() over (partition by title order by id) as seqnum
from t
) tt
on tt.id = t.id
set t.element_id = tt.seqnum;

关于MySQL-如何通过其他唯一列设置一列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57191278/

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