使用PostgreSQL在同一查询中更新多个行

前端之家收集整理的这篇文章主要介绍了使用PostgreSQL在同一查询中更新多个行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在一个语句中更新Postgresql中的多行。有办法做一些像下面的事情吗?
UPDATE table 
SET 
 column_a = 1 where column_b = '123',column_a = 2 where column_b = '345'
您还可以使用语法中的update …并使用映射表。如果你想更新多个列,它是更可通用:
update test as t set
    column_a = c.column_a
from (values
    ('123',1),('345',2)  
) as c(column_b,column_a) 
where c.column_b = t.column_b;

您可以根据需要添加任意数量的列:

update test as t set
    column_a = c.column_a,column_c = c.column_c
from (values
    ('123',1,'---'),2,'+++')  
) as c(column_b,column_a,column_c) 
where c.column_b = t.column_b;

sql fiddle demo

猜你在找的Postgre SQL相关文章