Mysql常见问题
2016-08-08 17:23
260 查看
You can’t specify target table ‘xxx’ for update in FROM clause
Mysql中,在对某一张表delete或update时,如果from里面是个对同一张表的查询子语句,会报该错:You can’t specify target table ‘xxx’ for update in FROM clause。如表去重:
DELETE from user where id not in (select max(id) as mid from user group by userId);
解决办法:在from中的子查询外面,再嵌套一层,作为临时表。如下:
DELETE from user where id not in (SELECT mid from (select max(id) as mid from user group by userId) b);
另外,左连接方式是可以的,但与正常的delete语句稍稍写法不同:
delete user from user left join (select min(id) as mid from user group by userId) b on id=mid where mid is null;
注意此处delete user from …
相关文章推荐
- Mysql 常见问题汇总
- mysql 常见问题收集
- [待总结]mysql双机热备份及常见问题处理
- 服务器上tomcat mysql 常见问题
- mac mysql 破解版下载及常见问题
- mysql常见问题
- MySQL:常见使用问题
- 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)
- 12、Mysql优化常见问题
- MySQL中常见的函数&常见的问题
- MySQL 一次执行多条语句的实现及常见问题
- WAMP(Windows、Apache、MySQL、php)安装配置过程常见问题
- mysql 常见问题解决
- 常见php与mysql中文乱码问题解决办法
- mysql常见解决问题
- Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)
- 在Windows上安装Python+MySQL 的常见问题及解决方法
- mysql常见问题
- mysql 常见问题整理
- mysql 常见问题