mysql update根据A表更新B表的sql语句

SEO探索者团队 SEO服务&网站优化

前面我介绍过用一个表更新另一个表,现在我们再来看一篇关于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. FieldTypeComment
  3. idint(11)
  4. namevarchar(20)
  5. ageint(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. FieldTypeComment
  14. idint(11)
  15. ageint(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. fromcommon.DBUtilimportDB
  7. dbUtil=DB('127.0.0.1',3306,'root','','test')
  8. rs=dbUtil.query("SELECTid,ageFROMtable_b")
  9. forrowinrs:
  10. (idv,age)=row
  11. print(idv,age)
  12. update_sql="updatetable_asetage='%s'whereid='%s';"%(age,idv)
  13. printupdate_sql
  14. dbUtil.update(update_sql)
  15. print'over'//phpfensi.com

其实一条SQL语句就可以搞定,看了看代码,实在是简单,于是网上搜了一下mysql能不能根据一个表更新另一个表,结果发现update本身就支持多个表更新的功能,代码如下:

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

用python代码就显得是大炮打蚊子多次一举了.

相关广告
  • mysql update根据A表更新B表的sql语句 mysql update根据A表更新B表的sql语句 mysql update根据A表更新B表的sql语句
相关阅读

mysql update根据A表更新B表的sql语句

2019/10/10 17:37:07 | 谷歌SEO算法 | 百度K站