批量更新MySQL数据的方法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

批量更新MySQL数据的方法

2016-02-07 22:59:36 2724 2

遇到需要批量更新的数据时,我的做法是用循环语句写入每一条数据,也就是每条更新要写一次数据库。自己也发现这样做效率很低,想是如果请求一次就能更新所有数据该有多好,特来寻找答案。
例如:
现在有下列数据:
1
更新这些人的分数时,用下列语句:
2
有没有更高效的方法?

取消 提交回答
全部回答(2)
  • 30676716
    2019-07-17 18:39:24

    楼上误人子弟 啊,不懂就不要说了,把多个结果结果集生成 一个表,多表关联更新,还可以用case where

    方法1(我更倾向于方法1).

    UPDATE table1, 
    (SELECT 1 AS id, 1 AS scoreA, 2 AS scoreB 
      UNION ALL  SELECT  1 AS id,91 AS scoreA,98 AS scoreB 
      UNION ALL SELECT 2 AS id,92 AS scoreA,97 AS scoreB) temp 
    SET table1.scoreA = temp.scoreA, table1.scoreB = temp.scoreB
      WHERE table1.id = temp.id ;

    方法2.

    UPDATE table1
    SET scoreA= CASE id 
    WHEN 10001 THEN 98 
    WHEN 10002 THEN 97
    WHEN 10004 THEN 92
    WHEN 10006 THEN 92
    WHEN 10039 THEN 93
    END 
    WHERE
    id IN ( 10001, 10002, 10004, 10006, 10039 )
    0 0
  • 蛮大人123
    2019-07-17 18:39:24

    从SQL语法角度,不存在一条SQL更新多条的SQL语法(UPDATE table1 SET col1=1 WHERE id>1这样的不算),只有一次插入多条的:INSERT INTO table1 (col1, col2) VALUES (value_1_1, value_1_2),(value_2_1, value_2_2),(value_3_1, value_3_2);
    从通信协议角度,你可以把多条SQL用分号隔开,一次性发送给数据库服务器执行,这样就达到了你请求一次更新多条的效果,为保证原子性,你可能得开启事务。HandlerSocket支持Bulk insert,但是否支持bulk update我没查到明文证据,我推测是不支持的。
    新人有追根溯源精神很好,欢迎继续探究此类问题,同时也要多利用搜索引擎寻找答案。等你实际工作后,不建议在这个问题上浪费时间,每发送一个SQL就更新一条挺好的,不算很低效

    0 0
添加回答
相关问答

1

回答

PolarDB MySQL同步至RDS MySQL中任务步骤配置的说明是什么?

2021-12-13 06:32:22 140浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中同步对象配置的说明是什么?

2021-12-13 06:33:15 135浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中映射名称更改配置的说明是什么?

2021-12-13 06:33:42 133浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中过滤待同步数据配置的说明是什么?

2021-12-13 06:34:09 136浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中同步的SQL操作配置的说明是什么?

2021-12-13 06:34:36 126浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中设置告警配置的说明是什么?

2021-12-13 06:35:37 150浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中源表复制临时表到目标库配置的说明是什么?

2021-12-13 06:36:33 247浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中源库、目标库的配置的说明是什么?

2021-12-13 06:37:14 164浏览量 回答数 1

1

回答

PolarDB MySQL同步至RDS MySQL中信息配置的说明是什么?

2021-12-13 06:37:47 150浏览量 回答数 1

1

回答

PolarDB-X 1.0同步至RDS MySQL的前提条件是什么?

2021-12-13 07:04:50 165浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
文章
问答
问答排行榜
最热
最新
相关电子书
更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL
立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL
立即下载
MySQL表和索引优化实战
立即下载