1. 程式人生 > >mysql資料庫表中刪除某一列值重複的全部行和只留一條

mysql資料庫表中刪除某一列值重複的全部行和只留一條

如果沒有加上一個中間表t,即這句話 select t.id from去掉直接寫成delete from fatie where id not in(select max(id) a.id1 from fatie a group by a.name);mysql會提示錯誤:You can't specify target table 'fatie' for update in FROM clause (不能先select出同一表中的某些值,再update這個表(在同一語句中)。這和文章上面的問題一樣,也是加了箇中間表才可以),網上是這樣說的:也就是說將select出的結果再通過中間表select一遍,這樣就規避了錯誤。注意,這個問題只出現於mysql,mssql和oracle不會出現此問題。