文章詳情頁
mysql更新語句
瀏覽:146日期:2022-06-21 14:03:39
問題描述
下面的表: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
問題解答
回答1:很久沒寫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
回答2:表名test
update test t1 inner join test t2 on t1.p_id = t2.old_idset t1.p_id = t2.id
回答3:一條SQL弄不了,就放在事務里,更新兩次吧
回答4:UPDATE test t1INNER JOIN test t2 ON t1.p_id = t2.old_idSET t1.p_id = t2.id
相關文章:
1. 安全性測試 - nodejs中如何防mySQL注入2. docker網絡端口映射,沒有方便點的操作方法么?3. docker start -a dockername 老是卡住,什么情況?4. java中返回一個對象,和輸出對像的值,意義在哪兒5. css3 - 純css實現點擊特效6. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?7. javascript - 關于apply()與call()的問題8. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?9. apache web server 怎么限制某一個網站對服務器資源的占用?10. html5 - 請問現在主流的前端自動化構建工具是哪個?
排行榜
