在MySQL中更新2列的多行

Don*_*n P 4 mysql sql case sql-update

跟进更新MySQL中1列中的多行.

更新2列中多行的最有效查询是什么?

UPDATE example_table SET variable1 = 12 WHERE id=1;
UPDATE example_table SET variable2 = 'blue' WHERE id=1;

UPDATE example_table SET variable1 = 42 WHERE id=2;
UPDATE example_table SET variable2 = 'red' WHERE id=2;

UPDATE example_table SET variable1 = 32 WHERE id=3;
UPDATE example_table SET variable2 = 'yellow' WHERE id=3;
Run Code Online (Sandbox Code Playgroud)

使用case似乎是最有效的,但是如何在一次设置多个值的情况下执行此操作?

kus*_*lvm 11

如果你有一个名为的表,categories 并说两列是display_order,title你将会做的是:

UPDATE categories
SET display_order = CASE id
    WHEN 1 THEN 32
    WHEN 2 THEN 33
    WHEN 3 THEN 34
END,
title = CASE id
    WHEN 1 THEN 'New Title 1'
    WHEN 2 THEN 'New Title 2'
    WHEN 3 THEN 'New Title 3'
END
WHERE id IN (1,2,3)
Run Code Online (Sandbox Code Playgroud)