我有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)
但是这个查询不会返回结果。
答案 0 :(得分:2)
使用return子句:
update table
set proc = 1
where id in (select id from table where status = 1)
returning *;
(顺便说一句:我认为内部选择实际上并不是从同一个表中选择,因为这个语句实际上没有意义,因为它可以用简单的where stauts = 1
重写