MySQL 抓出重複資料方法
最近收到要抓出資料重複(資料量很大)
這看起來很簡單,但沒想到讓我想了很久要怎麼做
最後實作出來筆記一下
EXCEL 過濾法
可以透過 Excel 抓重複資料
教學: Excel 找出重複內容,標示或刪除相同資料教學 - G. T. Wang
之後可以透過 Excel 篩選過濾抓出來(或刪掉)
但我發現我要查詢重複條件有2個以上,所以這招無效
我剛剛想到用兩個欄位尋找重複資料,再篩選多個資料
其實能不用寫程式方法最好
SQL 簡單反查法
不推薦使用,但適合少資料使用
我們知道 MySQL 做重複資料可以用 group by
和 having count(1) > 1
但是資料表唯一值id
就會被過濾掉
這不是我們要的
可以透過重複欄位做 or 反查
但是我資料表資料太多
這招不行啊!!!
JOIN 方法
這一招可以簡單抓到我要的資料
但是代價就是需要時間跑
|
|
最正規的作法
有查到可以用大數據的 MapReduce
感覺這種東西應該應用在大數據
只是我沒研究,就先放著
Mongo入门:数据去重之MapReduce,Aggregation的简单使用(另附相关网络资源) - V_code的博客 - CSDN博客
Excel 備註小記
上述因為要抓多個資料,可以先跑一次
匯入到自己 localhost DB ,多個條件可以做index,這樣搜尋不用花太多時間
csv檔案編碼
DB 是 UTF8 , CSV 需要用 notepad++ 和 visual studio code 轉 Big5
否則 Excel 開會亂碼
多國語系貼到 Excel 要注意的事項
可以用 Excel 會入 csv 載入方式 (但需要注意有沒有資料有換行符號,可以先人工把放行用掉,正常應該不會遇到,但我資料有這樣orz)
匯入建議把所有資料變成文字
,不然會發生資料跑錯欄位情形
其他相關連結:
[MYSQL]利用 SQL 找出欄位值重覆的記錄 @ 紀錄些小事情 :: 痞客邦 ::
從MYSQL資料庫中找出重複的資料並刪除 @ 緒含的部落格 :: 痞客邦 ::