返回首页 |

合作共赢、快速高效、优质的网站建设提供商

更多精品源码-尽在织梦模板-www.moke8.com

MySQL完成一起查询更新同一张表的实例剖析

时间:2017-09-22 编辑:admin

这篇文章首要介绍了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。最终的成果如下图:

这儿写图片描绘

以上就是MySQL完结一起查询更新同一张表的实例剖析的具体内容,更多请重视其它相关文章!


浏览:

网站建设

流程

    网站建设流程