国产探花免费观看_亚洲丰满少妇自慰呻吟_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代碼就顯得是大炮打蚊子多次一舉了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 波密县| 宿迁市| 金川县| 锡林郭勒盟| 平舆县| 洪泽县| 马鞍山市| 类乌齐县| 娄烦县| 呼伦贝尔市| 阳信县| 甘洛县| 中西区| 定兴县| 文化| 同江市| 宜春市| 应用必备| 娱乐| 十堰市| 富平县| 浦县| 朝阳市| 叙永县| 南岸区| 融水| 怀宁县| 内江市| 昭平县| 伽师县| 陈巴尔虎旗| 宜兴市| 金溪县| 卢龙县| 承德县| 新龙县| 榆中县| 长乐市| 安宁市| 搜索| 昌乐县|