mysql update根据A表更新B表的sql语句
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-27 15:43:05 浏览: 评论:0
前面我介绍过用一个表更新另一个表,现在我们再来看一篇关于mysql update根据A表更新B表的sql语句文章,希望本文章对你带来帮助.
最近遇到一个需求:mysql中A表和B表都有(id, age)字段,现在想读取B表的age字段,将其update到A表对应ID的age字段中去,我直接想到了一种方案,用Python读取B表,获得{id:age}形式的数据,然后根据每个ID和age的值依次update A表.
两个表分别定义和数据如下:
- A表定义:
- Field Type Comment
- id int(11)
- name varchar(20)
- age int(11)
- 数据:
- 1,name1,0
- 2,name2,0
- 3,name3,0
- 4,name4,0
- 5,name5,0
- B表定义
- Field Type Comment
- id int(11)
- age int(11)
- 数据:
- 1,11
- 2,21
- 3,31
- 4,41
- 5,51
python代码来实现,代码如下:
- # -*- encoding:utf8 -*-
- '''''
- @author: crazyant.net
- 读取B表的(id, age)数据,然后依次更新A表;
- '''
- from common.DBUtil import DB
- dbUtil = DB('127.0.0.1',3306,'root','','test')
- rs = dbUtil.query("SELECT id,age FROM table_b")
- for row in rs:
- (idv,age)=row
- print (idv,age)
- update_sql="update table_a set age='%s' where id='%s';"%(age,idv)
- print update_sql
- dbUtil.update(update_sql)
- 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代码就显得是大炮打蚊子多次一举了.
Tags: update语句 A表更新B表
- 上一篇:MySQL数据库建表sql语句实例
- 下一篇:MySQL一条语句更新多个表的方法
相关文章
- ·mysql SELECT FOR UPDATE 语句用法详解(2014-09-28)
- ·mysql update语句使用方法总结(2014-10-03)
- ·MySQL SQL UPDATE语句出现#1093错误解决办法(2014-10-04)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)