我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL如何实现数据批量更新功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL如何实现数据批量更新功能

本篇内容主要讲解“MySQL如何实现数据批量更新功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL如何实现数据批量更新功能”吧!

根据不同条件批量更新同一值

这种场景直接通过update语句更新即可,如:

UPDATE t_sys_user SET `desc` = 'CaseWhen-0' WHERE id IN (1001,1002,1003);

根据不同条件更新不同值

循环遍历逐条更新

  • 这种方式虽然简单,但是每更新一条数据就需要连接一次数据库,数据量多一点就会非常耗性能

foreach多条更新:

  • 通过foreach组装成多条update语句,实现一次数据库连接执行多条update语句

  • 但Mybatis映射文件中的sql语句默认是不支持以" ; " 结尾的,也就是不支持多条sql语句的执行

  • 所以需要在连接mysql的url上加 &allowMultiQueries=true 这个才可以执行

<update id="updateForeach">    <foreach collection="list" item="param" separator=";">        UPDATE t_sys_user        <set>            <if test=" param.desc != null and param.desc != ''">                `desc` = #{param.desc}            </if>        </set>        WHERE id = #{param.id}    </foreach></update>

case when 进行数据批量更新:

  • 通过 case when 的语法特性来实现根据不同条件更新不同值,也是进行一次数据库连接即可;当然,如果需要更新多个字段也是可以的

  • 这里提一下:由于表中有个desc字段是mysql关键字,所以需要用`斜单引号符号来处理一些

  • 值得注意:使用case when 更新时,最好也指定where条件,不然会进行全表扫描再更新

<update id="updateBatchCaseWhen">    UPDATE t_sys_user    <set>        <trim prefix="`DESC`= CASE id" suffix="END,">            <foreach collection="list" item="param">                <if test="param.id != null">                    WHEN #{param.id} THEN #{param.desc}                </if>            </foreach>        </trim><!--            <trim prefix="username = CASE id" suffix="END,">            <foreach collection="list" item="param">                <if test="param.username != null and param.username != ''">                    WHEN #{param.} THEN #{param.username}                </if>            </foreach>        </trim> -->    </set>    <where>        id in        <foreach collection="list" item="param" separator="," open="(" close=")">            #{param.id}        </foreach>    </where></update>
  • 我个人本地测了一下,40w数据使用case when更新1000条用400ms-500ms,使用foreach用时2000ms左右

  • 循环遍历逐条更新没测,想想也是最慢的

  • 如果数据量大,case when更新多个字段估计也够呛,要遍历多次(上述代码5-10行)构建SQL

到此,相信大家对“MySQL如何实现数据批量更新功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL如何实现数据批量更新功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL如何实现数据批量更新功能

本篇内容主要讲解“MySQL如何实现数据批量更新功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL如何实现数据批量更新功能”吧!根据不同条件批量更新同一值这种场景直接通过update语
2023-07-05

MySQL实现数据批量更新功能详解

最近需要批量更新大量数据,习惯了写sql,所以还是用sql来实现,下面这篇文章主要给大家总结介绍了关于MySQL批量更新的方式,需要的朋友可以参考下
2023-02-11

oracle如何批量更新数据

在Oracle中,可以使用UPDATE语句来批量更新数据。以下是一个示例:UPDATE your_tableSET column1 = 'new_value1',column2 = 'new_value2&
oracle如何批量更新数据
2024-04-22

sqlserver如何批量更新数据

在SQL Server中,可以使用以下方法批量更新数据:使用UPDATE语句和JOIN语句进行批量更新:UPDATE table1SET column1 = table2.column2FROM table1JOIN table2 O
sqlserver如何批量更新数据
2024-04-08

mongodb如何批量更新数据

在MongoDB中,可以使用updateMany方法来批量更新数据。该方法接受两个参数,第一个参数是查询条件,用来匹配需要更新的文档,第二个参数是更新操作符和要更新的字段值。例如,假设我们有一个名为users的集合,其中有一个字段stat
mongodb如何批量更新数据
2024-05-11

navicat如何批量更新数据

navicat 提供三种方式批量更新数据:使用 sql 编辑器编写 update 语句、使用“数据编辑器”手动编辑、使用“更新向导”根据提示更新。Navicat 中批量更新数据如何批量更新 Navicat 中的数据?Navicat 提供
navicat如何批量更新数据
2024-06-13

python如何实现Mysql数据库批量新增数据

本篇内容主要讲解“python如何实现Mysql数据库批量新增数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现Mysql数据库批量新增数据”吧!一、批量插入数据的场景在进行
2023-06-29

mongodb批量更新数据怎么实现

在 MongoDB 中,可以使用 updateMany() 方法来批量更新数据。下面是一个示例:假设有一个名为 users 的集合,其中包含了多个文档。要批量更新这些文档,可以使用以下代码:// 连接数据库const MongoCli
mongodb批量更新数据怎么实现
2024-04-09

大批量数据分批批量插入或更新(Mybatis+MySQL)

大批量数据分批批量插入或更新 在MySQL数据库的前提下,插入或更新大批量数据。首先批量插入需要考虑到以下几个因素: 数据库一次可以承受多大或者多少条数据的插入批量插入是否会占用Mysql资源太久,影响系统整体使用性能代码中的集合是否会造成
2023-08-30

sql如何批量更新多条数据

要批量更新多条数据,可以使用SQL的UPDATE语句结合CASE语句和IN语句来实现。以下是一个示例:假设有一个名为users的表,包含id和status字段,现在需要将status为0的所有用户的状态更新为1,可以使用以下SQL语句:
sql如何批量更新多条数据
2024-04-09

MySQL如何批量更新死锁

这篇“MySQL如何批量更新死锁”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL如何批量更新死锁”文章吧。表结构如下
2023-07-06

MySQL怎么批量更新多条数据

要批量更新多条数据,可以使用MySQL的UPDATE语句结合CASE语句来实现。以下是一个示例:假设有一个名为students的表,包含id、name和score字段,现在要将所有分数小于60的学生的分数更新为60。可以使用如下语句来实现
MySQL怎么批量更新多条数据
2024-04-17

mysql怎么批量更新千万数据

批量更新千万条数据可以使用MySQL的UPDATE语句结合WHERE子句来实现。下面是一个示例:UPDATE 表名 SET 字段1=值1, 字段2=值2, ... WHERE 条件;你可以根据具体的需求替换表名、字段和条件。要批量更新千
2023-10-24

Python实现mysql数据库更新表数据接口的功能

前言 昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操作mysql数据库基础:#coding=utf-8 import MySQLdbconn= MyS
2022-06-04

编程热搜

目录