0

という名前のテーブルがありますperson_relation

Id  | ParentId    |  ChildId  | PersonId    
-------------------------------------------
1   |    null     |  2        |   null     
-------------------------------------------
2   |     1       |  3        |   null      
-------------------------------------------
3   |     2       |  4        |    122
-------------------------------------------
4   |     3       |  null     |    122
-------------------------------------------

これらの 4 つの行は、ID が 122 の 1 人の人物に属しています。PersonId 列の更新に苦労しています。最初の 2 行の PersonId は 122 です。


Id  | ParentId    |  ChildId  | PersonId    
-------------------------------------------
1   |    null     |  2        |   null     
-------------------------------------------
2   |     1       |  3        |   null      
-------------------------------------------
3   |     2       |  4        |    122
-------------------------------------------
4   |     3       |  null     |    122
-------------------------------------------
5   |    null     |  6        |   123
-------------------------------------------
6   |     5       |  7        |   null      
-------------------------------------------
7   |     6       |  8        |    123
-------------------------------------------
8   |     7       |  null     |    null   
-------------------------------------------

テーブルには、ID が 122 と 123 の 2 人の人物がいます。したがって、上記の返信は機能しません。したがって、これらの行を更新するには反復的な方法が必要です。

4

3 に答える 3

1
update person_relation 
set personid = 122
where personid is null
于 2012-05-12T13:57:20.713 に答える
0

Juergenの答えで作業は完了しますが、データセットがこれらの4行に限定されていないことは間違いありません。私はもう少し安全なことをします:

update person_relation
set PersonId = 122
where Id IN (1,2)
于 2012-05-12T16:37:28.880 に答える