2012年8月3日 星期五

MYSQL 重覆資料怎麼刪除

這次又遇到一樣的問題了,key沒處理好,造成會有重複的資料

搜尋了一下,有看到幾種做法
1.直接刪掉在talbe裡重複的資料
例:ALTER IGNORE TABLE `資料表名稱` ADD UNIQUE INDEX(`欄位1`,`欄位2`...);

2.分二次,將 重複的資料 以及 未重複的資料 分別匯入另一個表,然後直接取代舊表

 我採用了以下的方式(較安全,雖然慢了一點) 
1.先將"未重複"的資料寫到另一個表 INSERT INTO `table_copy` SELECT * FROM `table` GROUP BY `field name` HAVING count(*)=1 
2.再將"重複"的資料寫到另一個表 INSERT INTO `table_copy` SELECT * FROM `table` GROUP BY `field name` HAVING count(*)>1 
3.直接用新表取代舊的表 

參考資料來源 
1、從MYSQL資料庫中找出重複的資料並刪除
2、[MYSQL]利用 SQL 找出欄位值重覆的記錄
這次又遇到一樣的問題了,key沒處理好,造成會有重複的資料

搜尋了一下,有看到幾種做法
1.直接刪掉在talbe裡重複的資料
例:ALTER IGNORE TABLE `資料表名稱` ADD UNIQUE INDEX(`欄位1`,`欄位2`...);

2.分二次,將 重複的資料 以及 未重複的資料 分別匯入另一個表,然後直接取代舊表

 我採用了以下的方式(較安全,雖然慢了一點) 
1.先將"未重複"的資料寫到另一個表 INSERT INTO `table_copy` SELECT * FROM `table` GROUP BY `field name` HAVING count(*)=1 
2.再將"重複"的資料寫到另一個表 INSERT INTO `table_copy` SELECT * FROM `table` GROUP BY `field name` HAVING count(*)>1 
3.直接用新表取代舊的表 

參考資料來源 
1、從MYSQL資料庫中找出重複的資料並刪除
2、[MYSQL]利用 SQL 找出欄位值重覆的記錄