mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)
例如
delete from table名称 where idStr in
(
select h.idStr from table名称 h
group by h.otherKey
having count(1) >1
);
就会报上面的错误
改
delete from table名称 where idStr in
(
select s.idStr from (
select h.idStr, h.otherKey,count(1) c from table名称 h
group by h.otherKey
) s where s.c >1
);
通过中间临时表来执行即可解决问题