博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中You can’t specify target table for update in FROM clause错误解决方法
阅读量:4946 次
发布时间:2019-06-11

本文共 753 字,大约阅读时间需要 2 分钟。

mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。 例如下面这个sql:

1 delete from tbl where id in 2 (3         select max(id) from tbl a where EXISTS4         (5             select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>16         )7         group by tac8 )

改写成下面就行了:

delete from tbl where id in (    select a.id from     (        select max(id) id from tbl a where EXISTS        (            select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1        )        group by tac    ) a)

也就是说将select出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。

引用自:![脚本之家](http://www.jb51.net/article/60926.htm)

转载于:https://www.cnblogs.com/disneyland/p/5976009.html

你可能感兴趣的文章
连连看小游戏
查看>>
(180905)如何通过梯度下降法降低损失----Google机器学习速成课程笔记
查看>>
面试介绍项目经验(转)
查看>>
<metro>Google的验证
查看>>
Oracle 表的分组操作
查看>>
在OS X上的Intllij Idea中配置GlassFish
查看>>
用查表法快速转换yv12到RGB【转】
查看>>
使用公钥登录SSL
查看>>
hdu 1290_献给杭电五十周年校庆的礼物
查看>>
豆瓣电影api
查看>>
BufferedInputStream和FileInputStream的区别
查看>>
likely() 和 unlikely()
查看>>
03一些View总结
查看>>
MapReduce--平均分,最高,低分以及及格率的计算
查看>>
mac下管理论文的工具
查看>>
POJ3122Pie(二分)
查看>>
WF+WCF+WPF第二天--模拟超市收银
查看>>
爬取贴吧好看的桌面图片 -《狗嗨默示录》-
查看>>
[转]这13个开源GIS软件,你了解几个?
查看>>
Shell批量启动、关闭tomcat
查看>>