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

Mysql 删除重复记录并随机保留一条,mysql,Mysql,如何删除重复记录并在MYSQL中随机保留一条记录?使用ALTER TABLE添加唯一索引,并指定IGNORE选项以避免出错: ALTER IGNORE TABLE mytable ADD UNIQUE INDEX (products_id, categories_id); 更新: 要使选择是随机的,请使用与旧表相同的模式创建一个新表,但在这些列上使用唯一的键。然后做: INSERT IGNORE INTO newtable SELECT * from oldtable ORDER BY RA

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

使用
ALTER TABLE
添加唯一索引,并指定
IGNORE
选项以避免出错:

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

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

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

随机排序中的每个副本中的第一个将插入到新表中,其余的将由于忽略选项而被忽略。

这会删除已插入到表中的任何重复记录吗+一个!太棒了!另请参见,但它假定有另一列保证在所有副本中是不同的。alter ignore如何保留记录?我希望它随机选择一条记录它保留每个重复集的第一条记录。请参阅。是否有任何方法可以随机保留一份副本记录?这实际上是一份副本