首页 > 数据库 >mysql 的常用批量更新

mysql 的常用批量更新

时间:2024-05-06 14:33:58浏览次数:32  
标签:name 批量 default when update 更新 user mysql

批量更新

in

update tableName set columnName = value where columnName in (value1, value2, value3);
有局限性,限制了更新的属性值必须一致。如果不一致,需要分开写多个update语句。

insert into... on duplicate key update

insert into tableName (columnName1, columnName2) values (value1, value2) on duplicate key update columnName1 = value1, columnName2 = value2;
根据 唯一索引或者primary key 来进行更新,如果存在则更新,不存在则插入。

replace into tableName (columnName1, columnName2) values (value1, value2);

如果value的字段不全,会将缺失的字段置为默认值。
究其原因,replace into 操作的本质是对重复的记录先 delete 后 insert,所以如果更新的字段不全会将缺失的字段置为默认值;而 insert into 只是update重复记录,不会改变其它字段。

set...case...when...where

-- 没有where条件,会更新所有的记录,可以使用default()函数来设置默认值
update tb_user
set password = case
    when user_name = 'xxx' then 'xxxpassword'
    when user_name = 'hhh' then 'hhhpassword'
    else default(password)
    end,
    age = case
    when user_name = 'xxx' then 18
    when user_name = 'hhh' then 20
    else default(age)
    end
-- 有where条件,只更新符合条件的记录
update tb_user
set password = case
    when user_name = 'xxx' then 'xxxpassword'
    when user_name = 'hhh' then 'hhhpassword'
    else default(password)
    end,
    age = case
    when user_name = 'xxx' then 18
    when user_name = 'hhh' then 20
    else default(age)
    end
where user_name in ('xxx', 'hhh')

标签:name,批量,default,when,update,更新,user,mysql
From: https://www.cnblogs.com/lovehai/p/18174964

相关文章

  • MySQL Connection not available问题解决方案
    在后端开发过程中,连接mysql数据库,过几个小时第一次使用会出现MySQLConnectionnotavailable报错这是因为MySql数据库存在一个连接池的回收时间,超过这个时间会导致资源无法正常释放,无法连接到MySql数据库1)在相关引用页面,进行定时刷新功能,这样尽管是同一个连接,但是相当于一个新......
  • MySQL DBA 面试问题
    1、MySQL适用的场景是什么?数据量建议单实例T级或以内,不依赖存储过程、函数、触发器的传统oltp场景都适用,因为是一个相对轻量级的数据库灾备使用MySQL各类的高可用方案即可,比如主从、mha、mgr等。2、MySQL巡检应该怎么做?优先关注哪些参数?可以从以下几个方面去做:服务器配置操......
  • 无规律快速批量重命名文件(夹)-固定命名
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 这里有1万多个文件,要命名成无规律的、不同的文件名 目标文件名里面的是上面已经修正数据的目标 一句话思路:提取全部目标名称,放到要改动的地方去打开工具,切换到“文件批量复制” 借助这个版块,提取......
  • mysql忘记密码
      mysql修改用户密码的方法及命令 方法1:用SETPASSWORD命令 首先登录MySQL。 格式:mysql>setpasswordfor用户名@localhost=password('新密码'); 例子:mysql>setpasswordforroot@localhost=password('123'); 方法2:用mysqladmin 格式:mysqladmin-u用户名......
  • Mysql权限管理,备份与三大范式
    mysql访问权限系统表mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表表名作用user存放用户账号、密码、主机信息和全局权限db数据库级别的权限表tables_priv表级别的权限表columns_priv列级权限表procs_priv函数/存储过......
  • Mysql索引
    索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引的优缺点:优点:所有的MySql列类型(字段类型)都可以被索引,也就是可以给任意字段设置索引。大大加快数据的查询速度。缺点:......
  • mysql执行update语句流程
    客户端发送更新命令到MySQL服务器,经过处理连接、解析优化等步骤;Server层向InnoDB存储引擎要id=1的这条记录;存储引擎先从bufferpoll中查找这条记录,有的话直接返回,没有则从磁盘加载到bufferpoll中然后返回;Server层执行器修改这条记录的name字段值;存储引擎更新修改到内存中;存储......
  • Mysql中的事务
    事务的四大特性:特性解释原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。一致性(Consistency)事务发生前后,数据的完整性要保持一致。隔离性(Isolation)隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的......
  • 在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件 (2024年5月更新)
    在ApplesiliconMac上DFU模式修复或恢复macOS固件搭载Apple芯片的Mac电脑DFU模式全新安装macOSSonoma请访问原文链接:在ApplesiliconMac上DFU模式修复或恢复macOS固件,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgMaccomputerswithApple......
  • 如何使用ISqlSugarClient进行数据访问,并实现了统一的批量依赖注入
    仓储层当前有接口IRepository<T>抽象类 BaseRepository<T>业务逻辑层有抽象类BaseBusiness<M,E>接口IBusiness<M,E>,其中使用ISqlSugarClient,其中还有E表示BaseEntity,M为BaseDto请用C#给出一个案例,支持不同表对应不同的业务逻辑层,然后不同仓储实例,不同表的业务,都实现......