文章詳情頁
mysql - 使用update語句同時更新兩個表的問題?
瀏覽:116日期:2022-06-16 10:31:11
問題描述
先貼sql: update class ,student set class.class_id = ’2011’,student.class_id = class.class_id where class_name = ’一班’;
我的需求是將class表中一班的id修改為2011,然后將student表中所有的學生的班級id都更新。但是上面的sql的執行結果是先執行student.class_id = class.class_id ,然后再執行class.class_id = ’2011’
一開始我以為是賦值語句順序的問題,于是我把兩個賦值語句調換了順序,發現效果還是不變。。。為什么呢?正確的寫法是什么呢?
問題解答
回答1:如果我沒記錯的話,標準里規定更新順序是從左到右,變量優先。但是標準規定是一回事,DBMS 有沒有嚴格遵守標準又是另一回事,不同的 DBMS 可能出來結果不一樣。只有查了你用的 DBMS 的文檔才能知道到底是什么情況。
保險的做法就是寫兩條 update,其實效率應該是非常接近的。
回答2:update class ,student set class.class_id = ’2011’,student.class_id = class.class_id where `class`.class_name = ’一班’ && `student`.class_name= ’一班’
上一條:mysql - 求糾正一個sql語句下一條:MySQL 書籍推薦
相關文章:
1. java中返回一個對象,和輸出對像的值,意義在哪兒2. javascript - Img.complete和img.onload判斷圖片加載完成有什么區別?3. css - chrome下a標簽嵌套img 顯示會多個小箭頭?4. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.5. docker網絡端口映射,沒有方便點的操作方法么?6. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?7. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?8. css3 - 純css實現點擊特效9. css - 網頁div區塊 像蘋果一樣可左右滑動 手機與電腦10. javascript - 有適合開發手機端Html5網頁小游戲的前端框架嗎?
排行榜
