84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
下面的表:p_id是父id,old_id是以前的父id,现在需要把p_id的值改成id比如第一条数据,之前的父id是10,其实对应的是第二跳记录,所以更新后,p_id=2更新后的结果:这样的更新语句sql如何写?需要做的事情:通过p_id找到old_id,这时候的id就是要更新的值;第一条记录p_id==10,p_id=old_id=10的是第二天记录,把p_id更新成2
ringa_lee
很久没写Mysql的查询操作了,不过我有个想法,对于上面表中的记录,p_id和old_id是在一张表中,既要做比较操作还要做更新操作。建议:
第一步:根据主表拆分一张临时表 tmp_id, old_tmp_id(对应主表中的old_id)
tmp_id old_tmp_id
1 30
2 10
3 20
第二步:左连接查询,where p_id == old_tmp_id, set p_id = tmp_id
表名test
update test t1 inner join test t2 on t1.p_id = t2.old_idset t1.p_id = t2.id
一条SQL弄不了,就放在事务里,更新两次吧
UPDATE test t1INNER JOIN test t2 ON t1.p_id = t2.old_idSET t1.p_id = t2.id
很久没写Mysql的查询操作了,不过我有个想法,对于上面表中的记录,p_id和old_id是在一张表中,既要做比较操作还要做更新操作。建议:
tmp_id old_tmp_id
1 30
2 10
3 20
表名test
update test t1
inner join test t2 on t1.p_id = t2.old_id
set t1.p_id = t2.id
一条SQL弄不了,就放在事务里,更新两次吧
UPDATE test t1
INNER JOIN test t2 ON t1.p_id = t2.old_id
SET t1.p_id = t2.id