當編寫一個數據庫轉換腳本,我所遇到的是有重複記錄的問題,我的目的是要找到這些和刪除重複。我絕不是SQL的專家,所以請尋求建議!選擇和刪除同一個表
我已經能夠想出這麼遠來查找和刪除重複記錄(如果組名和水平)是相同的是這
DELETE FROM achievements
WHERE group_name IN (SELECT concat(group_name, level)
FROM achievements
GROUP BY group_name, level
HAVING count(*) >1);
但它給我下面的錯誤的最好的事情
[ERR] 1093 - 表「的成就」被指定了兩次,既作爲「刪除」和作爲數據
這裏是一個單獨的源的目標我目前的數據; https://gist.github.com/Diddyy/13842901c830c19c21488613c9d27c92
從該數據有3個重複的(組名,接着電平);
ACH_CameraPhotoCount 5
ACH_FootballGoalScoredInRoom 1
ACH_FootballGoalScoredInRoom 2
餘類這些爲重複如已經存在具有相同名稱和層次的條目。
我的最終結果是,除去3次重複,但留下的每個所以它仍然存在之一。
請注意,允許複製組名稱。重複級別是允許的。但我不想要的是同一級別的group_name不止一次。
我似乎無法拿出一個解決方案,以及我不是太肯定CONCAT將是最好的方法是什麼?
對任何解決方案開放,謝謝!
你能提供樣本數據和期望的結果? –
@GordonLinoff補充信息,道歉! –