mysql更新語句
問題描述
下面的表:p_id是父id,old_id是以前的父id,現(xiàn)在需要把p_id的值改成id比如第一條數(shù)據(jù),之前的父id是10,其實(shí)對(duì)應(yīng)的是第二跳記錄,所以更新后,p_id=2更新后的結(jié)果:
這樣的更新語句sql如何寫?需要做的事情:通過p_id找到old_id,這時(shí)候的id就是要更新的值;第一條記錄p_id==10,p_id=old_id=10的是第二天記錄,把p_id更新成2
問題解答
回答1:很久沒寫Mysql的查詢操作了,不過我有個(gè)想法,對(duì)于上面表中的記錄,p_id和old_id是在一張表中,既要做比較操作還要做更新操作。建議:
第一步:根據(jù)主表拆分一張臨時(shí)表 tmp_id, old_tmp_id(對(duì)應(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. mysql 查詢身份證號(hào)字段值有效的數(shù)據(jù)2. python bottle跑起來以后,定時(shí)執(zhí)行的任務(wù)為什么每次都重復(fù)(多)執(zhí)行一次?3. 視頻文件不能播放,怎么辦?4. html5 - HTML代碼中的文字亂碼是怎么回事?5. python - 爬蟲模擬登錄后,爬取csdn后臺(tái)文章列表遇到的問題6. visual-studio - Python OpenCV: 奇怪的自動(dòng)補(bǔ)全問題7. mysql - 分庫分表、分區(qū)、讀寫分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來哪些效率或者其他方面的好處8. javascript - 彈出一個(gè)子窗口,操作之后關(guān)閉,主窗口會(huì)得到相應(yīng)的響應(yīng),例如網(wǎng)站的某些登錄界面,django后臺(tái)的管理等,這是怎么實(shí)現(xiàn)的呢?9. javascript - ios返回不執(zhí)行js怎么解決?10. android - 分享到微信,如何快速轉(zhuǎn)換成字節(jié)數(shù)組
