在表中,我有三列 - id,name和count。很多名稱列是相同的(由於缺乏UNIQUE早),我想解決這個問題。但是,id列被其他人(4或5,我認爲 - 我將檢查文檔)表使用以查找名稱,只是刪除它們會破壞事情。那麼有沒有一種很好,乾淨的方式說「找到所有相同的記錄並將它們合併在一起」?有沒有一種乾淨的方式來清理MySQL中的重複條目?
2
A
回答
4
這類問題的出現,不時。不,沒有一個非常乾淨的方法來做到這一點。您必須更改子表中取決於父表中不需要的值的所有行,然後才能消除父表中不需要的行。
MySQL支持多表UPDATE
和DELETE
報表(不像其他品牌的數據庫),所以你可以做一些非常巧妙的技巧如下所示:
UPDATE names n1
JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name)
JOIN child_table c ON (n2.id = c.id)
SET c.name_id = n1.id
ORDER BY n1.id DESC;
一旦你做到了這一點對所有的子表(s),可以使用MySQL的多表DELETE
語法刪除父表中不需要的行:
DELETE FROM n2
USING names n1 JOIN names n2 ON (n1.id < n2.id AND n1.name = n2.name);
0
爲什麼你不能這樣做
update dependent_table set name_id = <id you want to keep> where name_id in (
select id from names where name = 'foo' and id != <id you want to keep>)
相關問題
- 1. 在leonardo中有沒有一種清除USBCore RX控制的乾淨方法?
- 2. 有沒有一種乾淨的方式來檢索AWT事件調度線程
- 3. 有沒有一種乾淨的方法來處理Swift 3中的分配表達式?
- 4. 有沒有一種乾淨的方式來使用Builder模式來構建一個多級樹?
- 5. 有沒有一種乾淨的方式來記錄Groovy中的方法的結果?
- 6. 乾淨的方式強制morphia覆蓋現有的條目
- 7. 是否有一種乾淨的方式來測試Rspec中的ActiveRecord回調?
- 8. 是否有一種乾淨的方式來指定Swift中的字符文字?
- 9. 乾淨的方式來有條件地呈現HTML視圖?
- 10. 有沒有一種簡單的方法來重複一個PHP的MySQL查詢?
- 11. 有沒有一種乾淨的方式來*使用PHP的list()來跳過數組索引?
- 12. 有沒有一種乾淨的方式從我的項目中刪除SignalR Javascript包,但保持.net DLL的?
- 13. 有沒有一種乾淨的方式來使用指針(ids)作爲NSMutableDictionary中的鍵?
- 14. 有沒有一種乾淨的方式來保存Rails控制器中的參數?
- 15. 有沒有一種乾淨的方式來讀取嵌入式SQL資源文件?
- 16. 有沒有一種乾淨的方法可以在Hudson中刪除svn標籤
- 17. 有沒有一種「乾淨」的方式來自動取消在Java中註冊監聽器?
- 18. 有沒有一種乾淨的方式來在剃刀視圖中嵌入網址?
- 19. 有沒有一種乾淨的方式來獲得使用BeautifulSoup的HTML表格的第n列?
- 20. 有沒有一種優雅的方式來重複一個動作?
- 21. 這是一種乾淨的方式來實現一種「__tuple__」方法?
- 22. 有沒有一種乾淨的方式來返回FilePathResult並在之後刪除磁盤上的文件?
- 23. 有沒有一種乾淨的方式來添加功能到動態創建的命名空間?
- 24. 有沒有一種乾淨的方式來保留信息,同時解開Aeson的JSON對象?
- 25. 有沒有一種乾淨的方式在Kotlin中使用Groovy的擴展方法?
- 26. 有沒有一種乾淨的方法來避免在嵌套參數散列中調用nil方法?
- 27. 有沒有一種乾淨的方式來編輯viewmodels及其各個組件模型?
- 28. 有沒有一種慣用的Go方式來幹下面的代碼:
- 29. 有沒有一種乾淨的方式來檢查BackgroundWorker中的取消請求,而無需重複輸入相同的代碼?
- 30. 有沒有一種方法使用格式來重複一個詞