MySQL系列——MySQL中A表数据UPDATE到B表

MySQL中A表数据UPDATE到B表


场景1:表B:id,name,code三个字段均有值;表A :id,name,code 其中id,name有值并且与表B相对应,code值为null。现在将B表中的code值更新到A表中。

方法1:id不能有重复:

update t_a a set a.code=(select code from t_b b where b.id=a.id )

方法2:适合少量数据

update t_a a inner join (select code from t_b ) b set a.code=b.code;

场景2:表B:id,name,code,detail四个字段均有值;表A id,name,code,detail其中id,name有值并且与表B相对应,code,detail值为null。现在将B表中的code和detail值更新到A表中。

方法1:

update t_a a set 
a.code=(select code from t_b b where b.id=a.id ), 
a.detail=(select detail from t_b b where b.id=a.id );

方法2:

update t_a a inner join (select code, detail from t_b ) b set a.code=b.code, a.detail=b.detail;

场景3:将表B中数据全部更新到A中,存在即更新code字段,不存在便插入新记录

方法1:

insert into t_a (id, name, code) select id, name, code from t_b ON DUPLICATE KEY UPDATE code=VALUES(code);

存在即更新关键字:ON DUPLICATE KEY UPDATE


 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要更改MySQL数据,可以使用UPDATE语句。UPDATE语句的通用语法如下: UPDATE table_name SET field1=new-value1, field2=new-value2 \[WHERE Clause\] 其,table_name是要更新数据名,field1、field2等是要更新的字段名,new-value1、new-value2等是要更新的新值。可以同时更新一个或多个字段。在WHERE子句可以指定任何条件,以确定要更新数据行。以下是一个示例: UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3; 这个示例将更新runoob_tblrunoob_id为3的行的runoob_title字段的值为"学习 C++"。执行UPDATE语句后,可以使用SELECT语句来验证更新结果: SELECT * from runoob_tbl WHERE runoob_id=3; 这个SELECT语句将返回更新后的数据行,其runoob_title字段的值已经被更新为"学习 C++"。\[1\]\[2\] 另外,如果需要创建一个新的,可以使用CREATE TABLE语句。以下是一个创建名为student的的示例: CREATE TABLE IF NOT EXISTS `student` ( `name` VARCHAR(20) NOT NULL, `age` INT, `sex` VARCHAR(3), `score` DOUBLE ); 这个示例创建了一个名为student的,包含了name、age、sex和score四个字段。\[3\] #### 引用[.reference_title] - *1* *2* [Mysql之修改数据](https://blog.csdn.net/qq_47897078/article/details/122742465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [4、MySQL——向数据插入数据,修改数据数据数据删除操作](https://blog.csdn.net/CSDN_Loveletter/article/details/127543425)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值