删除重复记录并随机保留一个

时间:2012-10-20 08:12:58

标签: mysql

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

1 个答案:

答案 0 :(得分: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选项而被忽略。