如何按同一表中一行的条件更新一组行

时间:2013-05-23 15:54:22

标签: sql self-join

我必须更新一个表中一组行的状态字段。标准只有一行。

示例:

ID    Name    No   Status
 1    CR100   4711   1
 2    CR100   4712   0
 3    CR100   4713   0

 4    CR101   4712   0
 5    CR101   4713   0

 6    CR102   4715   0
 7    CR102   4788   1
 8    CR102   4733   0

我想更新组中所有行的状态,其中至少有一个状态为1.在我的示例中,必须更新组CR100和CR102的行状态。到1。

1 个答案:

答案 0 :(得分:0)

您应该能够使用类似于以下内容的UPDATE查询:

update yt
set status = 1
where exists (select name
              from yt t1
              where status = 1
                 and yt.name = t1.name);

请参阅SQL Fiddle with Demo