我在MySQL中使用innodb表。我想更新表中的几行,每行都有不同的值,例如:
UPDATE tbl_1 SET
col1=3 WHERE id=25,
col1=5 WHERE id=26
在Postgres中,我相信这是可能的:
UPDATE tbl_1 SET col1 = t.col1 FROM (VALUES
(25, 3)
(26, 5)
) AS t(id, col1)
WHERE tbl_1.id = t.id;
如何在交易中高效率地完成这项工作?
到目前为止我遇到的问题:
答案 0 :(得分:2)
是否根据col1
id
的案例和设置值
UPDATE tbl_1 SET col1=CASE id WHEN 25 THEN 3 WHEN 26 THEN 5 END WHERE id IN (25,26)