【发布时间】:2021-02-25 21:17:32
【问题描述】:
我在 MySQL 5.7 中遇到了一个查询。 简化,我有一个像这样的临时表:
guid B C
2 aa 55
5 ab 66
7 ac 77
9 ad 88
我想要做的是,将列 guid 变成从 1 开始的枚举,同时不触及其他列中的任何数据:
guid B C
1 aa 55
2 ab 66
3 ac 77
4 ad 88
我一直在寻找涉及 ROW_NUMBER 和 ROW_ID 的解决方案,但我的语法不被接受:
UPDATE temp_table
SET temp_table.guid = temp_table.New_guid
FROM (
SELECT guid, ROW_NUMBER() OVER (ORDER BY [guid]) AS New_guid
FROM temp_table
) x
我尝试采用this question 的上述内容,但它一直说“FROM 在此位置不是有效输入”。
【问题讨论】: