立山 发表于 2024-8-10 08:58:40

MySQL A表的字段值更新为B表的字段值

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_cardvarchar(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;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: MySQL A表的字段值更新为B表的字段值