MySQL数据库同时查询更新同一张表的方法
作者:mdxy-dxy 发布时间:2024-01-22 23:10:38
标签:MySQL,查询,更新,同一张表
在平常的项目中,经常会碰到这样的问题:我需要在一张标中同时更新和查询出来的数据。例如:有如下图一张表数据,现在需要更新操作为:把status=1的name值更新为id=2的name值
通常情况下我们会想到如下语句来实现这个需求:
UPDATE tb_testSET NAME = ( SELECT NAME FROM tb_test WHERE id= 2)WHERE `status` = 1
结果却报错,报错信息为:You can't specify target table 'tb_test' for update in FROM clause
,不能在同一语句中update,select同一张表。不能在同一张表操作,换个思路,如果不是同一张表的话应该就是可以的。于是,可以把select出来的结果当成一个临时的中间表,从中间表中获取想要的更新相关的数据。于是,上面的更新语句可以更改成下面这样子:
UPDATE tb_testSET NAME = (select name from ( SELECT NAME FROM tb_test WHERE id = 2) as t)WHERE `status` = 1
这样就可以完成题目中的操作。经历的大致过程为:查询出id=2的数据作为中间表t;set的数据从t表中查询出来;做更新操作这样就不是在同一语句中update,select同一张表了,因为这相当与在操作两张表,tb_test和中间表t。最后的结果如下图:
来源:http://blog.csdn.net/younglao/article/details/76570187


猜你喜欢
- 网上看到一个python写的数独,很好玩,分享给大家。import randomimport itertoolsfrom copy impo
- sql 在使用中每次查询都会生成日志,但是如果你长久不去清理,可能整个硬都堆满哦,笔者就遇到这样的情况,直接网站后台都进不去了,今天到数据库
- 1. 前言邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本、富文
- SQLSTATESQL SERVER 驱动程序错误描述 HY000所有绑定列都是只读的。必须是可升级的列,以使用 SQLSetPo
- 引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Djan
- 变量作用域变量由作用范围限制分类:按照作用域分类全局(global):在函数外部定义局部(local):在函数内部定义变量的作用范围全局变量
- 假设有这样一个任务,希望对某个文件夹(包括所有子文件夹与文件)中的所有文件进行处理。这就需要遍历整理目录树, 处理遇到的每个文件。impor
- 1线性回归1.1简单线性回归在简单线性回归中,通过调整a和b的参数值,来拟合从x到y的线性关系。下图为进行拟合所需要优化的目标,也即是MES
- 简单介绍下SecureCRTSecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或
- 1、微信小程序使用echarts,首先下载echarts并导入小程序项目中,因小程序后期上线对文件大小有要求,所以建议进行定制下载导入可减少
- typora使用latex进行公式的编写,下面是具体的行间公式和行内公式的快捷键方法:CTRL+SHIFT+M开启行间公式$$开启行内公式1
- 本文实例讲述了Python设计模式之状态模式原理与用法。分享给大家供大家参考,具体如下:状态模式(State Pattern):当一个对象的
- 一些基本的操作,在工作者遇到相关问题要有相关印象。一、 你想对浮点数执行指定精度的舍入运算对于简单的舍入运算,使用内置的 round(val
- Oracle的out参数实例详解一 概念1、一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值;而存储过程没有返回值。2、过程和
- 本文主要介绍了pandas统计重复值次数的方法实现,分享给大家,具体如下:from pandas import DataFramedf =
- 用关键字 in 和not in 来 如下:qwe =[1,2,3,4,5] if 2 in qwe: print ‘good!' e
- 1.hashlib密码散列hashlib模块定义了一个API来访问不同的密码散列算法。要使用一个特定的散列算法,可以用适当的构造器函数或ne
- 前言提示:以下是本篇文章正文内容🧡基本概念🌳树的定义树是n(n≥0)个结点的有限集合,n = 0时,称为空树,这是一种特殊情况在任意一棵非空
- 一、使用python3做webervice接口测试的第三方库选择suds-jurko库,可以直接pip命令直接下载,也可以在pypi官网下载
- 代码return JsonResponse({"name": "tom"})报错:TYPEERROR