将字段更新到同一个表中的其他字段

时间:2015-08-12 11:36:18

标签: mysql sql-update

我有一个名为Users的表。 我从其他表导入一些用户。 他们有一个parent_id

我的桌子我现在

id,parent_id,imported_rows_id

1,1,NULL ->my old data has not last row value

2,1,Null ->my old data has not last row value


3,1,1100

4,1100,1101

5,1100,1102

6,1102,1103

现在我想将所有parent_id更改为id,其中imported_rows_id = parent_id 和这里一样:

3,1,1100

4,3,1101

5,3,1102

6,5,1103

update users set parent_id  = (select id from users where parent_id=imported_rows_id)

不允许在同一张桌子上

此致

1 个答案:

答案 0 :(得分:2)

你可以通过自我加入来实现:

update TableName t1 join
       TableName t2 on t1.imported_rows_id=t2.parent_id
set t2.parent_id=t1.id
where t2.imported_rows_id is not null

结果:

id  parent_id   imported_rows_id
--------------------------------
1   1           (null)
2   1           (null)
3   1           1100
4   3           1101
5   3           1102
6   5           1103

结果SQL Fiddle