我有这张桌子
id child_id root_id
====================
1 0 0
2 0 1
3 0 2
我想更新一行并将child_id更改为特定行的id,并将root_id作为其id。
我试过这个mysql语句
UPDATE table SET child_id = id WHERE id = root_id;
我想要的输出示例是
id child_id root_id
====================
1 2 0
2 3 1
3 0 2
答案 0 :(得分:4)
您需要使用更新并加入自身。
update mytable t1
inner join mytable t2 on t1.id = t2.root_id
set t1.child_id = t2.id
答案 1 :(得分:1)
update t1
set t1.child_id = t2.id
from table t1
inner join table t2
on t1.id = t2.root_id
请检查一下是否有效。感谢