gpt4 book ai didi

mysql - 快速 MYSQL 查询删除重复项

转载 作者:行者123 更新时间:2023-11-29 07:23:12 25 4
gpt4 key购买 nike

我有一个包含 100,000 行的表,并且想要删除所有重复项。我已经尝试过以下查询:

DELETE t1 FROM wt_tweets t1, wt_tweets t2 WHERE t1.ID < t2.ID AND t1.tweet_id = t2.tweet_id OR t1.tweet_user_id = t2.tweet_user_id

不幸的是,它的速度相当慢。所以我想知道是否有更快的替代方案。

最佳答案

您的查询解析如下:

DELETE t1 FROM wt_tweets t1, wt_tweets t2
WHERE (t1.ID < t2.ID AND t1.tweet_id = t2.tweet_id) OR
(t1.tweet_user_id = t2.tweet_user_id)

在这种情况下,这将删除所有行(假设 tweet_user_idnull)。所以,更快的方法是:

TRUNCATE TABLE wt_tweets;

但是,我怀疑这就是你的意图。

如果您想删除 tweet_id 相同的行(但保留 ID 最大的行):

DELETE t
FROM wt_tweets t LEFT JOIN
(SELECT tweet_id, MAX(ID) as maxId
FROM wt_tweets
GROUP BY tweet_id
) tt
ON t.tweet_id = tt.tweet_id AND t.id = tt.maxId
WHERE tt.tweet_id IS NULL;

关于mysql - 快速 MYSQL 查询删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35381202/

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