Postgresql选择行和更新列

时间:2012-06-13 11:09:58

标签: sql postgresql select sql-update

我有where子句的SQL Select查询。例如

select * from table where status = 1

如何在选择时同时更新所选行的单列?我想标记选定的行,以避免在下一个循环中重新选择。类似的东西:

select * from table where status = 1; update table set proc = 1 where id in (select id from table where status = 1)

但是这个查询不会返回结果。

1 个答案:

答案 0 :(得分:2)

使用return子句:

update table 
    set proc = 1 
where id in (select id from table where status = 1)
returning *;

(顺便说一句:我认为内部选择实际上并不是从同一个表中选择,因为这个语句实际上没有意义,因为它可以用简单的where stauts = 1重写