Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)

2023-12-01 0 448
目录
  • 问题描述
  • 解决办法(推荐第三种)
    • 方法一:
    • 方法二:
    • 方法三:

问题描述

概述:用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。

Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)

解决办法(推荐第三种)

方法一:

update people s set city_name = (select name from city where code = s.city_code);

结果:

Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)

结论:

  • 代码对应的城市更新,对应错误的更正;
  • city表中没有的城市,在people表里全被更新为null。

方法二:

UPDATE people LEFT JOIN city ON people.city_code=city.`code` SET people.city_name=city.`name`;

结果:

Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)

结论: 和方法一 一样.

方法三:

update people s, city c set s.city_name = c.name where s.city_code = c.code;

结果:

Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)

结论:

  • 代码对应的城市更新,对应错误的更正;
  • city表中没有的城市,在people表里保持原数据,不会被清空。

注意事项:

如果数据量比较大记得建索引,建索引前十万数据一个小时,建索引后十万数据几十秒跑完(这里就给city_code建了索引)

到此这篇关于Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法)的文章就介绍到这了,更多相关mysql根据一个表的数据更新另一个表内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Mysql Mysql根据一个表的数据更新另一个表数据的SQL写法(三种写法) https://www.u-9.cn/database/mysql/4914.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务