β

mysql删除重复记录提示#1093 – You can’t specify target tabl

与您分享电脑世界 34 阅读

使用以下语句删除重复记录时候出现错误提示,据说mssql和oracle不会出现此问题。

delete from table where (countid) in (

 select min(countid) as countid from table where year=2017 group by objname,objid,year having count(1) > 1

)

提示#1093 – You can’t specify target table ‘X’ for update in FROM clause

大概意思是你不能select出来后同时又更新

解决方案 要不就create table tmp 创建个临时表,要不就再套个select

delete from table where (countid) in (
 select a.countid from
 (
 select min(countid) as countid from table where year=2017 group by objname,objid,year having count(1) > 1
 )a
)
作者:与您分享电脑世界
NetPc.com.cn

发表评论