gpt4 book ai didi

mysql - SQL - 尝试将表中的数据移动一个位置

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

在手动将数据输入 SQL 数据库时,我不小心开始输入错误的行。在这个特定的表中,我有一个 ID 列,该列递增 1,2,3...所以我觉得这可能是一个简单的修复。

我的表名为 Sources。包含时髦数据的列是 SenderID,而我的递增 ID 列称为 ID

如何将位于 ID = Z 的 SenderID 中的数据转移到 ID = Z+1 的 SenderID(其中 ID 在某个范围内(例如 > 33))? (ID = 33 的 SenderID 将被放入 ID = 34 的 SenderID 中,依此类推)。输入 SenderID 时,我落后了一行,需要将第 34-99 行中的 SenderID 移动到第 35-100 行。

我正在思考这些问题,但我不太明白,因为我不太熟悉 SQL 语法:

Update SenderID
Set SenderID = (SenderID)+1 // The statement giving me problems
Where ID > 33;

我尝试移动的数据是文本字符串。

最佳答案

Update sources s1 inner join sources s2 on s1.SenderID = s2.SenderID +1
Set s2.SenderID = s1.SenderID
Where s1.ID > 33
order by s1.ID;

您的表名称错误,现在是正确的

更新了评论中的查询,您需要自联接并更新匹配的表。

您需要将表连接到自身,这样您就可以在同一行中同时拥有应有的内容和在一起的内容,连接条件 (id = id +1) 允许这种情况发生

order by 是为了确保它以正确的顺序运行,例如 37 在 36 之前不会被处理,这会设置错误的 ids

关于mysql - SQL - 尝试将表中的数据移动一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25037319/

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