现在我有一个products表,结构如下

一般情况下的update语句:

update products set column_key = "new_value"

当要更新多行,并且每行更新的内容不一样:

insert into `products` (id, name, description)

VALUES(1, "aa", "aa is good"), (2, "bb", "bb is bad")

on duplicate key update

name=values(name),

description=values(description)

当要更新多行,并且每行更新的内容不一样, 并且当输入为空时,不覆盖数据库:

insert into `products` (id, name, description)

VALUES(1, "aa", ""), (2, "bb", "bb is bad")

on duplicate key update

name=if(values(name)>"", values(name), name),

description=if(values(description)>"", values(description), description)

当要更新多行,并且每行更新的内容不一样,

并且当输入为null时不覆盖数据库(但非null值会覆盖, 比如空字符串):

insert into `products` (id, name, description)

VALUES(1, "aa", ""), (2, "bb", null)

on duplicate key update

name=if(values(name) is null, name, values(name)),

description=if(values(description) is null, description, values(description))

这个例子中,被更新的字段应该设为 允许为空(nullable),

否则 values(column) is null 这个判断是无效的

如果一次更新的行数非常多,也可以考虑使用replace into,但

表中的自增id基本就没什么用了,所以一般不建议

我水完了。

mysql更新多条数据_mysql 一次更新多行(多条记录)相关推荐

  1. mysql分组取出每组地一条数据_MYSQL实现分组排序并取组内第一条数据

    一.需要实现分组排序并且取组内状态优先级最高的数据 有一张这样的数据表, 需求是根据error_type分组然后取status最小的第一条数据 第一种写法: select t.* from ( sel ...

  2. phpexcel导出大量数据合并单元格_PHPExcel处理一个单元格内多条数据拆分成多个单元格多条数据...

    日期: 2020年6月17日 分类: PHP Tags: Excel 阅读量: 1,221 一.描述需求 如图,当我们遇到一条数据中,某一项内容有多条数据,为了方便文档查阅,我们需要在那一项数据进行拆 ...

  3. mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  4. 如何查mysql里有多少条数据_mysql快速查询数据库中有多少条数据

    慕尼黑的夜晚无繁华 mysql 统计 表的数量:SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的数据库'; ...

  5. mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作

    MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO ta ...

  6. mysql一次读取500条数据_mysql批量插入500条数据

    表格结构如下 需求name和password字段,生成如下格式: 总共批量生成500个. 解决思路:可以用mysql 存储过程 如果linux环境下可以用shell 我们先测试第一种,用存储过程.DE ...

  7. mysql插10万条数据_MySQL数据库插入100w条数据要花多久?

    MySQL数据库插入100w条数据要花多久? 1.多线程插入(单表) 2.多线程插入(多表) 3.预处理SQL 4.多值插入SQL 5.事务(N条提交一次) # 多线程插入(单表) 问:为何对同一个表 ...

  8. mysql定时清空表数据_Mysql实现定时清空一张表的旧数据并保留几条数据

    要达到如下目的: Mysql数据库会每隔一段时间(可以是2小时,也可以是一天,这个可以自定义),定时对一张库中的表做一个判断,如果这张表的数据超过了20条(这个数据也是自定义的,也可以是200条),就 ...

  9. mysql分组随机取数据_MySql分组后随机获取每组一条数据的操作

    思路:先随机排序然后再分组就好了. 1.创建表: create table `xdx_test` ( `id` int(11) not null, `name` varchar(255) defaul ...

最新文章

  1. gnupg环境搭建时遇到的问题
  2. ip.php是什么意思,IP是什么意思
  3. 中国照明市场运营现状及发展前景分析报告2021年版
  4. 分布式版本控制工具Git
  5. python下划线怎么输入_python长的下划线怎么打
  6. 一文看清深圳云栖阿里云重磅产品发布
  7. Commonjs规范及Node模块实现
  8. 基于相干解调法和基于相位比较法的2DPSK数字通信系统 MATLAB Simulink仿真
  9. 为什么[]比list()更快?
  10. java每轮排序结果,冒泡排序及其优化java
  11. LNMP 常见问题(FAQ)
  12. redis作用_Java高级架构笔记——实现故障恢复自动化:详解Redis哨兵技术
  13. 在构造函数中释放对象本身
  14. 无源蜂鸣器c语言编程,电磁式蜂鸣器驱动原理与简单蜂鸣器编程及电路设计案例...
  15. 卷积神经网络学习路线(十一)| Stochastic Depth(随机深度网络)
  16. PS颜色模式及修图工具
  17. 解决apt-cyg命令不报错也无日志的小问题
  18. 快速批量删除新浪微博内容
  19. vue自定义弹窗dialog,vue 点击遮罩层功能区以外的地方关闭遮罩层
  20. win2000上安装sql server 2000个人版时

热门文章

  1. C#之double网络字节序
  2. 网页视频之H264打包为fmp4调研
  3. 计算机基础(七):ION定义与使用方法
  4. java 二分查找_Java二分法查找
  5. python结课报告_20193111 2019-2020《Python程序设计》实验4报告
  6. python datetime strptime_python datetime模块strptime/strptime format常见格式命令_施罗德_新浪博客...
  7. python 重启程序_重新启动Python程序
  8. idea 2018.3.5版本
  9. Android 实现计时器功能,Android实现倒计时30分钟功能
  10. 71计算机组装与维修期中,《计算机维修》期中考试卷