我是MySQL的新手.
我在一个查询中使用它来更新具有不同值的多行:
UPDATE categories
SET order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
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)
我正在使用"WHERE"来提高性能(没有它会测试表中的每一行).
但是,如果我有这个senario(当我不想更新id 2和3的标题时):
UPDATE categories
SET order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END,
title = CASE id
WHEN 1 THEN 'New …Run Code Online (Sandbox Code Playgroud)