2012-07-30 191 views
0

刪除我試着在MySQL 5.1中刪除表中重複的行與表的別名在MySQL

查詢

delete from sessions o where exists (select * from sessions i where i.data=o.data and i.id<>o.id); 

但dosent似乎工作,我讀了使用表的別名在delete語句mysql是不可能的,但是這是如何工作的:Deleting Records

+0

「它似乎不工作」是不是一個合理的解釋。什麼是你得到的錯誤信息? – Jocelyn 2012-07-30 16:50:20

+0

@Jocelyn:錯誤1064(42000):您的SQL語法錯誤;檢查 對應於您的MySQL服務器版本的手冊,以找到在第1行存在的'c1 wh (在會話i中選擇*)'附近使用的正確語法 – Akash 2012-07-30 16:52:55

回答

0

嘗試此查詢 -

DELETE t1 FROM sessions t1 
    JOIN (SELECT data, MIN(id) id FROM sessions GROUP BY data) t2 
    ON t1.id <> t2.id AND t1.data = t2.data;