Don*_*n P 4 mysql sql case sql-update
更新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)