是否可以在1 sql update语句中更新3个sql行

hap*_*497 4 sql

我有这样的SQL表.

id          Order
======== =========
1                4
2                3
3                5
4                1
5                2
Run Code Online (Sandbox Code Playgroud)

是否可以在1 sql语句中更新多行?即我想更新id = 3,order = 1和id = 5,order = 4和id = 1,order = 1

我知道如何在3个更新语句中执行此操作.但我想知道我是否可以在1 sql update语句中更新3行.

谢谢.

Luk*_*keH 5

你可以用一个UPDATE声明来做到这一点,但我不会打扰.

在这种情况下使用三个单独的更新更有意义.尝试使用一个语句来完成它会使您的代码更不易读,更容易出错.

但如果你真的想要单一的陈述,那么你去:

UPDATE your_table
SET order = CASE id
                WHEN 3 THEN 1
                WHEN 5 THEN 4
                WHEN 1 THEN 1
            END
WHERE id IN (3, 5, 1)
Run Code Online (Sandbox Code Playgroud)