错误地添加了重复记录。我该如何删除它们?

时间:2011-02-22 06:41:11

标签: mysql duplicates

修改

这个查询不起作用,不知道为什么?

select `key`, distinct `filename`, `url`, `processed`, `timestamp` from snaps;

它说检查'distinct filename``

附近的语法

我有下表

CREATE TABLE IF NOT EXISTS `snaps` (
  `filename` varchar(255) COLLATE utf8_bin NOT NULL,
  `url` text COLLATE utf8_bin NOT NULL,
  `processed` int(11) NOT NULL,
  `timestamp` int(11) NOT NULL,
  KEY `key` (`key`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

我导出了表的行,并错误地将其导回到同一个表中。所以现在我有两排一切。 filename是唯一的。

如何删除重复记录?

3 个答案:

答案 0 :(得分:1)

将DISTINCT选择到临时表中,刷新第一个,然后再将它们移回。

答案 1 :(得分:0)

如果您拥有该表的所有原始非重复行,那么不能只是

TRUNCATE <table>然后重新导入它们?

答案 2 :(得分:0)

第二组行与插入的时间戳是否相同?如果是这样,您可以根据该时间戳删除。

或者,您可以SELECT INTO OUTFILE删除后半部分,TRUNCATE TABLE然后LOAD DATA INFILE