想象一下以下sql查询:

UPDATE MYTABLE

SET COL2 = (SELECT COL2 + 1 FROM (SELECT MAX(COL2) FROM MYTABLE) AS X)

WHERE ID IN (1,2,3,4,5)

假设在执行更新之前MAX(COL2)为1.

我的意图是,对于ID = 1的更新,COL2更新为’max(COL2)1′(即2),并且重新评估后续更新’MAX(COL2)1′,以便ID = 2 ,COL2 = 3,ID = 3,COL2 = 4等……

实际发生的是,对于所有行(ID = 1,2,3,4,5),COL2的值为2.

是否有一种聪明的方法可以在每次更新时重新评估MAX(COL2)1的值?我意识到这样做可能存在性能问题,但我很好奇!有没有更好的替代方案(不涉及多个更新语句)?

解决方法:

UPDATE mytable, (

SELECT @loop := MAX(col1)

FROM

mytable

) o

SET col1 = (@loop := @loop + 1)

你在这里遇到的是查询稳定性.

没有查询可以看到自己做出的更改,或以下查询:

UPDATE mytable

SET col1 = col2 + 1

WHERE col1 > col2

永远不会结束

标签:mysql,sql,sql-update

来源: https://codeday.me/bug/20190716/1473565.html

mysql动态update语句,mysql – SQL:具有动态列值赋值的update语句相关推荐

  1. sql两个列值以下划线拼接得到一个新的列_面试必备sql知识点——MySQL基础

    在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...

  2. mysql某一列 赋值_[MySQL]定时把某一列值赋值给另一列

    前言 在做项目的时候需要根据用户的积分做一个排名和排名趋势(上升.下降或持平),首先,从排名趋势上分析,我的想法是,今天的排名(ranking)和昨天排名(oldranking)进行对比,然后给出趋势 ...

  3. Mysql查询结果只有一条的情况下把值赋值给变量,再用if else 流程判断

    1 BEGIN 2 set @n=(SELECT count(day) from log where day=CURDATE()); 3 IF @n=0 THEN 4 call m_LogInsert ...

  4. 'SELECT'语句中的'IF' - 根据列值选择输出值

    SELECT id, amount FROM report 我需要amount为amount如果report.type='P'和-amount如果report.type='N' . 如何将其添加到上述 ...

  5. MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)...

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...

  6. mysql delayed_mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )

    mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE ) 更新时间:2010年04月14日 13:46:04   作者: DELAYED 做 ...

  7. MySQL 当记录不存在时insert,当记录存在时update

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的 ...

  8. mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...

    基本的查询语句​ select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名​ select 字段名 as 别名 from 表名称;​ ...

  9. (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL函数和操作符

    一.操作符 1.1 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符具有相同的优先级. 操作符 优先级 := 1 ||, OR, XOR 2 &&, AN ...

最新文章

  1. 005-OSI七层模型IP地址
  2. selenium学习笔记(一)
  3. python tkinter 弹窗_Python:tkinter-Parent获取弹出窗口的返回值
  4. 中国光伏产业将面临何种形势?
  5. Python Frozenset()
  6. 在Tomcat中部署web项目的三种方式
  7. 计算机的原码, 反码和补码
  8. 2021年流动式起重机司机模拟考试题库及流动式起重机司机模拟考试系统
  9. greenDAO简单使用经验
  10. 仿原生安卓文件管理器
  11. 如何添加装饰螺纹线规格
  12. 地图中的矢量POI兴趣点
  13. lol祖安服务器维护,触目惊心 被演员与代练所“支配”的英雄联盟
  14. HTML超出文本显示省略号...[text-overflow]
  15. 案场渠道稽核管理系统更新记录V1.2
  16. Aws S3 基础操作
  17. Android高手进阶教程(一)-------Android常用名令集锦(图文并茂)!
  18. 为什么只有中国的程序员节是10月24日?
  19. 摊还分析,核算法与势能法
  20. 设备“Kingston DataTraveler 3.0“无法连接到理想的主机控制器。将尝试将该设备连接到可用的最佳主机控制器......

热门文章

  1. KBU1010-ASEMI高端适配器扁桥KBU1010
  2. 四线电阻触摸屏原理(仅作为学习记录)
  3. 攻防世界WEB练习-favorite_number
  4. 机器学习NLP参考文章
  5. Linux 查看二进制文件的三种方法
  6. Matlab实现 理想低通、巴特沃斯低通、高斯低通、理想高通、巴特沃斯高通、高斯高通(d=10,50,150)
  7. Android FFmpeg 音视频开发教程
  8. HTB打靶日记:Cerberus
  9. lspci 详解 pci 拓扑结构 与 pci 树形结构
  10. 小球酷跑(制作过程)