国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql update根據A表更新B表的sql語句

2024-07-24 12:36:50
字體:
來源:轉載
供稿:網友

前面我介紹過用一個表更新另一個表,現在我們再來看一篇關于mysql update根據A表更新B表的sql語句文章,希望本文章對你帶來幫助.

最近遇到一個需求:mysql中A表和B表都有(id, age)字段,現在想讀取B表的age字段,將其update到A表對應ID的age字段中去,我直接想到了一種方案,用Python讀取B表,獲得{id:age}形式的數據,然后根據每個ID和age的值依次update A表.

兩個表分別定義和數據如下:

  1. A表定義: 
  2. Field Type Comment 
  3. id int(11)  
  4. name varchar(20)  
  5. age int(11)  
  6. 數據: 
  7. 1,name1,0 
  8. 2,name2,0 
  9. 3,name3,0 
  10. 4,name4,0 
  11. 5,name5,0 
  12. B表定義 
  13. Field Type Comment 
  14. id int(11)  
  15. age int(11)  
  16. 數據: 
  17. 1,11 
  18. 2,21 
  19. 3,31 
  20. 4,41 
  21. 5,51 

python代碼來實現,代碼如下:

  1. # -*- encoding:utf8 -*- 
  2. ''''' 
  3. @author: crazyant.net 
  4. 讀取B表的(id, age)數據,然后依次更新A表; 
  5. ''' 
  6. from common.DBUtil import DB 
  7. dbUtil = DB('127.0.0.1',3306,'root','','test'
  8. rs = dbUtil.query("SELECT id,age FROM table_b"
  9. for row in rs: 
  10.     (idv,age)=row 
  11.     print (idv,age) 
  12.     update_sql="update table_a set age='%s' where id='%s';"%(age,idv) 
  13.     print update_sql 
  14.     dbUtil.update(update_sql) 
  15. print 'over' //Vevb.com 

其實一條SQL語句就可以搞定,看了看代碼,實在是簡單,于是網上搜了一下mysql能不能根據一個表更新另一個表,結果發現update本身就支持多個表更新的功能,代碼如下:

UPDATE table_a,table_b SET table_a.age=table_b.age WHERE table_a.id=table_b.id;

用python代碼就顯得是大炮打蚊子多次一舉了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉南县| 谢通门县| 淮滨县| 荥经县| 邵武市| 米易县| 当阳市| 龙川县| 青川县| 酒泉市| 南汇区| 阳原县| 十堰市| 瑞昌市| 奎屯市| 喜德县| 南康市| 凉城县| 道真| 和龙市| 垣曲县| 凤山市| 乐陵市| 凌云县| 广宁县| 都匀市| 巨野县| 蒙阴县| 安化县| 宜丰县| 兰溪市| 通道| 务川| 宜春市| 德阳市| 昌宁县| 祁连县| 邵武市| 阳东县| 永川市| 靖江市|