我正在尝试更新表中的多行,但由于服务器资源有限,我无法在单个 UPDATE 语句中执行此操作。我知道这可以通过使用 CASE 在单个语句中完成,但我无法让它工作,因为需要使用复合键(三列)而不是单个值来更新表。
这个例子有效:
UPDATE myTable
SET newValue = CASE id
WHEN 1 THEN 'val1'
WHEN 2 THEN 'val2'
WHEN 3 THEN 'val3'
END,
WHERE id IN (1,2,3)
但我需要这样的东西才能工作:
UPDATE myTable
SET newValue = CASE (id,x,y)
WHEN (1,1,1) THEN 'val1'
WHEN (1,1,2) THEN 'val2'
WHEN (1,1,3) THEN 'val3'
END,
WHERE id IN (1,2,3)
有没有办法在单个 UPDATE 语句中有这样的东西,还是我必须解决有限的服务器资源?