mysql根据一个表的数据更新另一个表数据的SQL写法

这篇具有很好参考价值的文章主要介绍了mysql根据一个表的数据更新另一个表数据的SQL写法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

概述:用一个表中的字段去更新另外一个表中的字段, 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建了索引)

————————————————
版权声明:本文为CSDN博主「佳德_Boy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Boy_Martin/article/details/131294736文章来源地址https://www.toymoban.com/news/detail-491625.html

到了这里,关于mysql根据一个表的数据更新另一个表数据的SQL写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MYSQL将一张表的数据更新到另外一张表中

    update 更新表 set 字段 = (select 原始数据 from 原始表 where 更新表.id = 原始表.id) 例如: update 更新表,原始表 set 更新表数据 = 原始表数据 where 更新表.id = 原始表.id 例如:update a,b set a.code = b.code ,a.name = b.name where a.id = b.id;

    2024年02月03日
    浏览(45)
  • 【MySQL】根据多个字段查询数据进行去重的sql编写

    一、实现思路 根据四个字段进行数据去重的SQL编写可以使用GROUP BY和HAVING子句来实现。 场景一: 假设有一个名为 table1 的数据表,其中包含四个字段: field1 、 field2 、 field3 和 field4 。要求根据这四个字段进行数据去重。 可以使用以下SQL语句: 场景二: 上述SQL语句会返回所

    2024年02月15日
    浏览(52)
  • 【mysql将一个表的数据添加到另一个表中】

    1、两个表的结构一致: 插入时若存在主键冲突,使用以下sql删掉重复数据: 2、当两张表字段不相同,使用以下sql,要保证字段类型一致。 3、复制一个表数据结构完全一样的数据到新表

    2024年02月06日
    浏览(41)
  • MySQL运维:从全备sql文件中提取指定表的数据并恢复

    目录 一、运行环境 二、需求说明 三、思路分析 五、具体方案 六、恢复表数据 一、运行环境 系统:CentOS7.3 数据库:MySQL 8.0.21 二、需求说明 线上有个表的数据被误操作了很多,无法通过bin-log进行具体的恢复。所以当前我们需要从全库备份文件(mysqldump导出的64GB文件)中恢复

    2024年02月15日
    浏览(44)
  • 数据库sql 根据身份证计算年龄段mysql、oracle

    mysql: mysql通过函数可以精确到日 结果: Oracle: oracle只是年份相减,不够精确 结果:

    2024年02月12日
    浏览(63)
  • 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    问题 根据身份证号统计年龄(18位) Oracle 思路 (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容。 (2)To_date()函数可以转换不同格式的日期,通过使用to_date函数可以将字符串类型的日期转换成date格式。 (3)Months_between()函数反悔两个日期之间的

    2024年02月11日
    浏览(47)
  • Oracle将一个表的字段更新到另外的一个表的字段

    table_1 t_id real_name 1 张三 2 李四 3 王五 table_2 id t_id name 88 1 赵六 96 2 54 3 把 table_1 的 real_name 更新到 table_2 的name字段中

    2024年02月17日
    浏览(45)
  • 问题:Spark SQL 读不到 Flink 写入 Hudi 表的新数据,打开新 Session 才可见

    博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧

    2024年02月22日
    浏览(52)
  • Node.js + Mysql 防止sql注入的写法

    关键代码 访问数据库相关代码 一个分页查询人员信息的完整代码,查询语句实现了防止sql注入

    2024年01月16日
    浏览(44)
  • 解决IntelliJ IDEA在Mybatis 编写mapper.xml SQL语句时不自动提示SQL语句和数据库表的问题

    在Idea中链接数据库后,发现在MySql 的console中有SQL语句提示和数据表的提示,但是在编写mapper.xml中发现并没有提示,很烦,觉得效率下降。 在百度搜索后,发现了解决方法,出现了SQL语句的提示. 解决办法: 按下alt + enter,选择Language injection settings 然后选择SQL即可,但是这种

    2024年02月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包