IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Mysql批量动态修改数据用临时表的方法,三步解决。 -> 正文阅读

[大数据]Mysql批量动态修改数据用临时表的方法,三步解决。

一、 为什么会用?

在数据迁移的过程中,批量修改数据的几个字段。

二、思路:
1.把所要修改的数据查询出来。
2.新建临时表,将查询出来的数据存进临时表中。
3.将要查入数据的表和临时表做关联,将需要更新的字段进行修改。
三、实现代码
1.这是我的SQL逻辑,你们的根据你们的逻辑写就行了。

select *
from (select service.NAME as NAME 
           , service.UNIT
           , t4.org_name           as SUPPLY_NAME
           , '1'                   as flag
      from (
               select sazk.id,
                      IF(sazk.UNIT = '09', '03', sazk.UNIT) as UNIT,
                      t2.NAME 
               from (select id,
                            IF(SUBSTRING(UNIT, 1, 2) = '08', '03',
                               SUBSTRING(UNIT, 1, 2)) as UNIT
                     from table1
                    ) sazk
                        inner join table2 t2 ON sazk.id= t2.SUPP_ID
               group by t2.NAME 
               having count(1) > 1
           ) service
               left join table3 t4 ON service.UNIT= t4.org_no) mult
UNION ALL
(

    select service.NAME as NAME 
         , service.UNIT   as UNIT
         , t4.org_name           as SUPPLY_NAME
         , '2'                   as flag
    from (
             select sazk.id,
                    UNIT,
                    t2.NAME 
             from (select id,
                          SUBSTRING(UNIT, 1, 4) as UNIT
                   from table1
                  ) sazk
                      inner join table2 t2 ON sazk.id= t2.SUPP_ID
             group by t2.NAME 
             having count(1) = 1
         ) service
             inner join table3 t4 ON service.UNIT= t4.org_no
);

2.新建临时表,将上边的逻辑复制过来就好了

-- 因为测试的时候要看表是否存在
drop temporary table if exists serviceTemp;
-- 创建临时表
create temporary table serviceTemp
select *
from (select service.NAME as NAME 
           , service.UNIT
           , t4.org_name           as SUPPLY_NAME
           , '1'                   as flag
      from (
               select sazk.id,
                      IF(sazk.UNIT = '09', '03', sazk.UNIT) as UNIT,
                      t2.NAME 
               from (select id,
                            IF(SUBSTRING(UNIT, 1, 2) = '08', '03',
                               SUBSTRING(UNIT, 1, 2)) as UNIT
                     from table1
                    ) sazk
                        inner join table2 t2 ON sazk.id= t2.SUPP_ID
               group by t2.NAME 
               having count(1) > 1
           ) service
               left join table3 t4 ON service.UNIT= t4.org_no) mult
UNION ALL
(

    select service.NAME as NAME 
         , service.UNIT   as UNIT
         , t4.org_name           as SUPPLY_NAME
         , '2'                   as flag
    from (
             select sazk.id,
                    UNIT,
                    t2.NAME 
             from (select id,
                          SUBSTRING(UNIT, 1, 4) as UNIT
                   from table1
                  ) sazk
                      inner join table2 t2 ON sazk.id= t2.SUPP_ID
             group by t2.NAME 
             having count(1) = 1
         ) service
             inner join table3 t4 ON service.UNIT= t4.org_no
);

3.更新所修改的数据

update mk_temp t1,serviceTemp t2
set t1.UNIT     =t2.UNIT     ,
    t1.SUPPLY_NAME=t2.SUPPLY_NAME,
    t1.CREATE =t2.flag
where t1.SUP_NAME =t2.SUPPLIER_NAME;

到这里就完成了,
要有什么更简单的方法,交流一下

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:12:55  更:2022-04-29 12:15:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:06:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码