【发布时间】:2017-06-16 09:31:03
【问题描述】:
我有一个包含这些值的表:
Name | id
----------------
Blue guy | 20
Green girl | 10
id 列是唯一值。我想要的是将蓝色家伙 id 更新为 10,并且在同一个查询中我想将绿色女孩 id 更新为 20。我当前的 SQL 查询是:
UPDATE colorpeople SET id = 20
WHERE name = 'Blue guy';
我在哪里可以指定将绿色女孩更新到?
【问题讨论】:
-
看看这个问题和接受的答案:stackoverflow.com/questions/20255138/…
-
从逻辑上讲,它是两个更新语句,因为它是两个不同的值,附加了不同的条件。但是您可以根据上面给出的链接将它组合成一个语句。但是,它实际上只能扩展到两个或三个值,如果您需要为大量行执行此操作,它将变得笨拙。
-
通常,这种事情是在一个 3 步事务中完成的 - 1. 将 20 更新为 x。 2. 将 10 更新为 20。 3. 将 x 更新为 10。