gpt4 book ai didi

SQLite:如何交换仅留下 ID 列的两行

转载 作者:行者123 更新时间:2023-12-01 19:17:45 25 4
gpt4 key购买 nike

我有两个整数,它们是表中现有两行的一些 ID。
我想要做的是只交换两行的值,除了它们的 ID。

例如,如果我给出了 ID 5 和 13,我想改变

ID    columnA    columnB    columnC
5 343 "ABC" null
13 90 "DEF" "ZY"

进入

ID    columnA    columnB    columnC
5 90 "DEF" "ZY"
13 343 "ABC" null

我该怎么做?ID列不是自动增量的,所以我不能鲁莽地插入具有任意ID的临时行。

最佳答案

您应该能够使用标准 SQL 来执行此操作,如下所示:

update t
set id = (case when id = 5 then 13 else 5 end)
where id in (5, 13);

如果 id 列具有唯一约束,那么您可能会违反唯一约束。如果发生这种情况,一种方法是两步法。假设 id 始终为正:

update t
set id = (case when id = 5 then -13 else -5 end)
where id in (5, 13);

update t
set id = - id
where id < 0;

关于SQLite:如何交换仅留下 ID 列的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44220173/

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