mysql更新語句
問題描述
下面的表:p_id是父id,old_id是以前的父id,現(xiàn)在需要把p_id的值改成id比如第一條數(shù)據(jù),之前的父id是10,其實對應(yīng)的是第二跳記錄,所以更新后,p_id=2更新后的結(jié)果:
這樣的更新語句sql如何寫?需要做的事情:通過p_id找到old_id,這時候的id就是要更新的值;第一條記錄p_id==10,p_id=old_id=10的是第二天記錄,把p_id更新成2
問題解答
回答1:很久沒寫Mysql的查詢操作了,不過我有個想法,對于上面表中的記錄,p_id和old_id是在一張表中,既要做比較操作還要做更新操作。建議:
第一步:根據(jù)主表拆分一張臨時表 tmp_id, old_tmp_id(對應(yīng)主表中的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弄不了,就放在事務(wù)里,更新兩次吧
回答4:UPDATE test t1INNER JOIN test t2 ON t1.p_id = t2.old_idSET t1.p_id = t2.id
相關(guān)文章:
1. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項2. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫3. mysql取模分表與分表4. gvim - 誰有vim里CSS的Indent文件, 能縮進(jìn)@media里面的5. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點符號?正則如何寫?6. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯誤8. PHP類屬性聲明?9. objective-c - ios 怎么實現(xiàn)微信聯(lián)系列表 最好是swift10. javascript - 請教如何獲取百度貼吧新增的兩個加密參數(shù)
