它会更喜欢这个(3 个语句)。
UPDATE table SET a = '', b = '34' WHERE id = '1000001';
UPDATE table SET a = '1111', b = '11' WHERE id = '100210';
UPDATE table SET a = '', b = '2' WHERE id = '8002059';
或者,您可以在 SET 中使用两个 CASE 语句。它不会那么可读,但是如果这是一个 1-off 的情况,您经常需要执行 3 个条件更新(不太可能),那么它会运行得稍微快一点,而不是 3 个数据库往返。
UPDATE table SET
a = CASE id WHEN '1000001' THEN '' WHEN '100210' THEN '1111' WHEN '8002059' THEN '' ELSE a END,
b = CASE id WHEN '1000001' THEN '34' WHEN '100210' THEN '11' WHEN '8002059' THEN '2' ELSE b END
WHERE id IN ('1000001', '100210', '8002059');