数据集结构如下:
| text1 | text2|
| 23 | 43 |
| 44 | 23 |
| 23 | 44 |
删除后,剩余部分应为:
| text1 | text2|
| 23 | 43 |
| 23 | 44 |
如果a.Text1 == b.text2和a.text2 == b.text1,则删除其中一个。
由于我有大约一百万件物品,有没有有效的方法可以做到这一点?如果需要,我可以使用Python和MySQL数据库。
答案 0 :(得分:2)
执行此类删除的最快方法通常是truncate
和insert
。类似的东西:
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;