如何以有效的方式删除重复的项目

时间:2014-05-31 19:13:11

标签: python mysql algorithm

数据集结构如下:

   | text1 | text2|    
   | 23    |  43  |   
   | 44    |  23  |  
   | 23    |  44  |

删除后,剩余部分应为:

   | text1 | text2|   
   | 23    |  43  |   
   | 23    |  44  |

如果a.Text1 == b.text2和a.text2 == b.text1,则删除其中一个。

由于我有大约一百万件物品,有没有有效的方法可以做到这一点?如果需要,我可以使用Python和MySQL数据库。

1 个答案:

答案 0 :(得分:2)

执行此类删除的最快方法通常是truncateinsert。类似的东西:

create temporary table t as
    select least(text1, text2) as text1, greatest(text1, text2) as text2
    from dataset t
    group by least(text1, text2), greatest(text1, text2);

truncate table dataset;

insert into dataset(text1, text2)
    select text1, text2
    from t;