MySQL A表的字段值更新為B表的字段值
準備數據表
create table person
(id int unsigned auto_increment comment '主鍵' primary key,uuid varchar(32) not null comment '系統唯一標識符32個長度的字符串',mobile varchar(11) null comment '中國國內手機號',nickname varchar(255) null comment '昵稱',id_card varchar(18) null comment '中國居民身份證號'
) comment '用戶信息' charset = utf8mb3;
create table login
(id int unsigned auto_increment comment '主鍵' primary key,account varchar(255) null,auth_text varchar(255) null,person_id int null
) comment '用戶登錄'charset = utf8mb3;
更新 person
表中 mobile
字段值跟新為 login
表中的 account
字段值
方法一
子查詢
不安全的查詢:不帶where的Update語句一次更新所有表行
update person set mobile = (select mobile from login where login.person_id = person.id);
方法二
使用內連接查詢
不安全的查詢:不帶where的Update語句一次更新所有表行
update login inner join person on login.person_id = person.id set person.mobile = login.account;
方法三
使用逗號操作符
update login,person set person.mobile = login.account where login.person_id = person.id;