我有一个这样的表,实际上我需要用id而不是name更新上级列
通过使用mysql UPDATE查询
实际表
ID | USERNAME | SUPERVISOR_USERNAME | SUPERIOR
1 | jdoe | jsmith | NULL
2 | jsmith | dduck | NULL
3 | ANU | jsmith | jdoe
4 | JOHN | dduck | jdoe
5 | NIKHIL | jsmith | jsmith
6 | JOSE | dduck | jsmith
预期结果表
ID | USERNAME | SUPERVISOR_USERNAME | SUPERIOR
1 | jdoe | jsmith | NULL
2 | jsmith | dduck | NULL
3 | ANU | jsmith | 1
4 | JOHN | dduck | 1
5 | NIKHIL | jsmith | 2
6 | JOSE | dduck | 2
最佳答案
使用具有自联接的更新:
UPDATE yourTable t1
INNER JOIN yourTable t2
ON t1.SUPERIOR = t2.USERNAME
SET t1.SUPERIOR = t2.ID
请注意,此更新不会触及具有
NULL
上级的记录,但这应该是可以接受的,因为这些记录在预期输出中仍为NULL
。关于mysql - 条件相同的表的MYSQL更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44857890/