MySQL数据库同时查询更新同一张表的方法

发布时间 - 2026-01-11 03:19:29    点击率:

在平常的项目中,经常会碰到这样的问题:我需要在一张标中同时更新和查询出来的数据。例如:有如下图一张表数据,现在需要更新操作为:把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。最后的结果如下图:


# MySQL  # 查询  # 更新  # 同一张表  # Mysql update多表联合更新的方法小结  # mysql实现查询数据并根据条件更新到另一张表的方法示例  # 如何使用MySQL一个表中的字段更新另一个表中字段  # Mysql 根据一个表数据更新另一个表的某些字段(sql语句)  # mysql用一个表更新另一个表的方法  # 仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案  # 报错  # 新和  # 是在  # 就不  # 在同一  # 如果不是  # 两张  # 换个  # 这样子  # 来实现  # 经常会  # 如下图  # 就可以  # 句中  # 情况下  # code  # set  # status  # id  # table 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  如何快速完成中国万网建站详细流程?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  如何在IIS中新建站点并解决端口绑定冲突?  JS碰撞运动实现方法详解  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  如何构建满足综合性能需求的优质建站方案?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  制作企业网站建设方案,怎样建设一个公司网站?  Android自定义控件实现温度旋转按钮效果  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  phpredis提高消息队列的实时性方法(推荐)  HTML 中动态设置元素 name 属性的正确语法详解  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Bootstrap整体框架之CSS12栅格系统  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  网站图片在线制作软件,怎么在图片上做链接?  Android中AutoCompleteTextView自动提示  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  高端建站如何打造兼具美学与转化的品牌官网?  如何用狗爹虚拟主机快速搭建网站?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel中的withCount方法怎么高效统计关联模型数量  高防服务器租用指南:配置选择与快速部署攻略  Python结构化数据采集_字段抽取解析【教程】  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  JavaScript实现Fly Bird小游戏  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何快速搭建安全的FTP站点?  如何在Windows环境下新建FTP站点并设置权限?  如何在阿里云高效完成企业建站全流程?  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?