错误:You can't specify target table 'xxx' for update in FROM clause的解决
2015-11-09 16:52
525 查看
问题:
今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本:
会出现报错信息:
You can't specify target table 'tempA' for update in FROM clause
大致意思是,在同一语句中,不能先select出同一表中的某些值,再update这个表。
解决方法:
需要对上述脚本进行改造,如下:
查询的时候增加一层中间表,就可以避免该错误。
今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本:
DELETE FROM tempA WHERE tid IN ( SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age )
会出现报错信息:
You can't specify target table 'tempA' for update in FROM clause
大致意思是,在同一语句中,不能先select出同一表中的某些值,再update这个表。
解决方法:
需要对上述脚本进行改造,如下:
DELETE FROM tempA WHERE tid NOT IN ( SELECT t.tid FROM ( SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age ) t )
查询的时候增加一层中间表,就可以避免该错误。
相关文章推荐
- 10.C#的数组
- HDU 1276 士兵队列训练问题
- HTML5 的标签大全以及相关属性
- 关于盒子定位
- 黑马程序员——IO——File、常用流对象演示
- 第十周项目一-建立二叉树算法库
- leetcode笔记:Edit Distance
- 第7周 项目2 建立链队算法库
- realloc函数
- 安卓中的gridview
- 集合以及特殊集合
- Barcode Professional for ASP.NET使用教程:如何在HTML支持的DPI范围内显示高清条码
- ArrayList,stack,queue
- java面向对象之继承
- Hibernate快速上手
- iOS 【boundingRectWithSize】
- 第九周实践项目2—对称矩阵压缩存储的实现与应用(2)
- 第十一周项目4哈夫曼编码的算法验证
- PopWindow
- GitHub桌面版