這篇文章主要介紹了MySQL中刪除重復數據的簡單方法,比起一般的NOT IN語句的效率更為高,需要的朋友可以參考下
MYSQL里有五百萬數據,但大多是重復的,真實的就180萬,于是想怎樣把這些重復的數據搞出來,在網上找了一圈,好多是用NOT IN這樣的代碼,這樣效率很低,自己琢磨組合了一下,找到一個高效的處理方式,用這個方式,五百萬數據,十來分鐘就全部去除重復了,請各位參考。
第一步:從500萬數據表data_content_152里提取出不重復的字段SFZHM對應的ID字段到TMP3表
- create table tmp3 as select min(id) as col1 from data_content_152 group by SFZHM;
第二步:創建新表RES
- CREATE TABLE `res` (
- `id` int(11),
- `sfz` char(20)
- ) ENGINE=MyISAM;
第三步:把TMP3表ID對應到data_content_152里需要提取的數據添加到RES表的SFZ字段
- INSERT INTO res (sfz) SELECT sfzhm FROM data_content_152,tmp3 where data_content_152.id=tmp3.col1
至此,就在MYSQL里實現了,給數據表data_content_152完全刪除重復數據,把去重復后的數據導入到RES表。
新聞熱點
疑難解答