gpt4 book ai didi

mysql - 当记录更新较早时增加行的列

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

假设我有一个像这样的表结构:

ID (PK), Parent_ID (FK), Title, Position

像这样的行:

1, 1, Apple, 1
2, 1, Orange, 2
3, 1, Banana, 3
4, 1, Lime, 4
5, 1, Grapefruit, 5
6, 2, Lemon, 1

现在,假设我要运行以下查询:

UPDATE table SET Position = 1 WHERE ID = 3

如何更新其他行的位置字段,以便数字正确递增到记录最初在位置列表中的位置。请注意,这应该只影响具有相同 Parent_ID 的行。

所以当完成时。它看起来像这样:

1, 1, Apple, 2
2, 1, Orange, 3
3, 1, Banana, 1
4, 1, Lime, 4
5, 1, Grapefruit, 5
6, 2, Lemon, 1

谢谢!

最佳答案

您确实需要对其他行运行多次更新。

通用解决方案:

/** initial update or insert **/
UPDATE table SET Position = 1 WHERE ID = 3;

/** update of the other sequence **/
UPDATE table Set Position = CASE WHEN Position >= 1 THEN Position + 1 ELSE Position - 1 End where id <> 3

关于mysql - 当记录更新较早时增加行的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39267839/

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