84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
下面的表: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