mysql动态update语句,mysql – SQL:具有动态列值赋值的update语句
想象一下以下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语句相关推荐
- sql两个列值以下划线拼接得到一个新的列_面试必备sql知识点——MySQL基础
在刷了上百道sql题后,发现所有的题目都是基于某一个或几个知识点来做考察的,所以理清基础的知识细节,才能在题目考察到任意知识点时,找到解决线索. 温故而知新,学习在于总结,于是我再次对已经学习过的my ...
- mysql某一列 赋值_[MySQL]定时把某一列值赋值给另一列
前言 在做项目的时候需要根据用户的积分做一个排名和排名趋势(上升.下降或持平),首先,从排名趋势上分析,我的想法是,今天的排名(ranking)和昨天排名(oldranking)进行对比,然后给出趋势 ...
- 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 ...
- 'SELECT'语句中的'IF' - 根据列值选择输出值
SELECT id, amount FROM report 我需要amount为amount如果report.type='P'和-amount如果report.type='N' . 如何将其添加到上述 ...
- MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)...
MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...
- 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 做 ...
- MySQL 当记录不存在时insert,当记录存在时update
MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的 ...
- mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...
基本的查询语句 select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名 select 字段名 as 别名 from 表名称; ...
- (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL函数和操作符
一.操作符 1.1 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符具有相同的优先级. 操作符 优先级 := 1 ||, OR, XOR 2 &&, AN ...
最新文章
- 数据结构的映像方法(数据元素的机内表示)
- python3 opencv 输出中文
- 小白学python买什么书-小白如何高效率学习python?真心建议(附教程)
- 2008秋-计算机软件基础- 实验一 参考源程序
- boxfilter 函数
- 学生电脑哪个牌子好_专卖工作服哪个牌子好
- Java语法糖1:可变长度参数以及foreach循环原理
- hduoj 2546饭卡
- 反射创建对象_如何应用Java反射技术灵活地创建程序类的对象实例
- SpringCloud学习笔记(6)----Spring Cloud Netflix之负载均衡-Ribbon的使用
- 前端笔记 | CSS盒子模型
- java程卫琴_43名基层工会干部在“机关开放日”走进安徽省总工会参观并座谈
- html设置分割线虚线,css border设置虚线样式?
- excel替换快捷键_18个Ctrl系列快捷键,简单易上手,且实用
- 高等数学 极限存在 与 极限不存在
- Unity3D游戏开发从零单排(六) - 人物运动及攻击连击
- UG二次开发-加工篇:获取刀具的直径,总长,刃长等
- Linux各版本内核下载地址
- Swift:什么时候需要mutating这个参数
- 目标检测之详解yolov3的anchor、置信度和类别概率