gpt4 book ai didi

php - 在多列中查找重复行

转载 作者:行者123 更新时间:2023-11-29 01:40:00 24 4
gpt4 key购买 nike

这是我的sql数据

id      location1    location2      distance
--------------------------------------------
1 Paris Marseille 150km
2 Paris Lyon 200km
3 Paris Strasbourg 300km
4 Paris Toulouse 350km
5 Marseille Paris 150km <-(almost) duplicate of row 1
6 Marseille Lyon 250km
...

因为 Paris -> Marseille 之间的距离等于 Marseille -> Paris 我想删除其中一个重复的行。

表包含将近 100 万行,其中一半是重复的。对于如此大的表中的数据,我如何才能删除这些重复项。

最佳答案

在这种情况下,您可以自己加入表格:

DELETE FROM city WHERE id IN (
SELECT id
FROM city c1, city c2
WHERE c1.location1 = c2.location2 AND c2.location1 = c1.location2
AND c1.id < c2.id)

我假设你的表名为 city

正如 miszyman 所指出的,避免子查询更有效:

  DELETE c1
FROM city c1, city c2
WHERE c1.location1 = c2.location2 AND c2.location1 = c1.location2
AND c1.id < c2.id

关于php - 在多列中查找重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27193432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com