3

如何在MYSQL中删除重复记录并随机保留一条记录?

4

1 回答 1

6

用于ALTER TABLE添加唯一索引,并指定IGNORE选项使其不会出错:

ALTER IGNORE TABLE mytable 
ADD UNIQUE INDEX (products_id, categories_id);

更新:

要使选择是随机的,请创建一个与旧表具有相同架构的新表,但在这些列上具有唯一键。然后做:

INSERT IGNORE INTO newtable
SELECT * from oldtable
ORDER BY RANDOM();

随机排序中每个重复项中的第一个将被插入到新表中,其余的将因为 IGNORE 选项而被忽略。

于 2012-10-20T08:17:12.157 回答