mysql根据表a修改表b_mysql根据A表更新B表的方法

最近遇到一个需求:mysql中A表和B表都有(id, age)字段,现在想读取B表的age字段,将其update到A表对应ID的age字段中去,我直接想到了一种方案:用Python读取B表,获得{id:age}形式的数据,然后根据每个ID和age的值依次update A表。 两个表分别定义和数据如下

最近遇到一个需求: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'

?

其实一条SQL语句就可以搞定

看了看代码,实在是简单,于是网上搜了一下mysql能不能根据一个表更新另一个表,结果发现update本身就支持多个表更新的功能。

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

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

转载请注明来源:链接

### 回答1: MySQL更新单个中的字段可以使用UPDATE语句。语法如下: ``` UPDATE 名称 SET 字段1 = 新值1, 字段2 = 新值2, …… WHERE 查询条件; ``` 例如: ``` UPDATE users SET age = 30 WHERE name = 'John Doe'; ``` 上面的例子将名为'John Doe'的用户的年龄更新为30。 若要更新 A字段为 B字段的值,可以使用如下语句: ``` UPDATE 名称 SET A = B WHERE 查询条件 ``` 例如: ``` UPDATE users SET phone_number = home_phone WHERE id=5; ``` 上面的例子将id为5的用户的phone_number字段更新为home_phone字段的值。 ### 回答2: 使用MySQL中的UPDATE语句可以用来更新单个的数据。要更新A字段等于B字段的数据,可以使用以下语法: UPDATE 名 SET A字段 = B字段 WHERE A字段 = B字段; 例如,假设我们有一个名为“users”的,其中包含“name”和“age”两个字段,我们希望将“age”字段的值设置为与“name”字段相同的值,可以使用如下的UPDATE语句: UPDATE users SET age = name WHERE age = name; 执行以上语句后,“age”字段的值将会与“name”字段的值相等。 需要注意的是,此语法仅适用于希望将某个字段的值更新为与另一个字段相等的情况。如果需要根据其他条件进行更新,可以通过在WHERE子句中添加其他条件来实现。 另外,如果有多个需要更新的字段,可以使用逗号分隔它们,例如: UPDATE 名 SET A字段 = B字段, C字段 = D字段 WHERE A字段 = B字段; 总之,使用UPDATE语句可以轻松地在MySQL更新单个的数据,其中可以通过设置相应的条件来让A字段等于B字段。 ### 回答3: MySQL中,我们可以使用UPDATE命令对单个进行更新操作。更新某个字段A等于另一个字段B的值,可以通过以下SQL语句实现: UPDATE 名 SET 字段A = 字段B; 这条语句将会把中的每一行数据的字段A的值都更新为该行数据的字段B的值。 例如,假设我们有一个名为"student",包含以下字段: - id (学生ID) - name (学生姓名) - age (学生年龄) - score (学生成绩) 如果我们想将每个学生的年龄更新为该学生的分数,可以使用以下更新语句: UPDATE student SET age = score; 运行以上语句后,每一行数据的age字段都将被更新为该行数据的score字段的值。 需要注意的是,更新操作会对中每一行数据进行修改,因此在执行更新之前,最好先备份数据以防误操作导致数据丢失。 此外,还可以根据需要增加WHERE语句来指定更新的数据行,例如: UPDATE student SET age = score WHERE name = '张三'; 以上语句将只会将姓名为"张三"的学生的年龄更新为该学生的分数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值