2

我有带有 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)

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

4

1 回答 1

3

使用返回子句:

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

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

于 2012-06-13T11:13:45.410 回答