下面的表: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
表名測驗
更新測試 t1 在 t1.p_id = t2.old_id 上進行內部連接測試 t2設定 t1.p_id = t2.id
一條SQL弄不了,就放在事務裡,更新兩次吧
更新測試 t1內部連接測試 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
表名測驗
更新測試 t1
在 t1.p_id = t2.old_id 上進行內部連接測試 t2
設定 t1.p_id = t2.id
一條SQL弄不了,就放在事務裡,更新兩次吧
更新測試 t1
內部連接測試 t2 ON t1.p_id = t2.old_id
SET t1.p_id = t2.id