如何从mysql表中删除重复记录但有1条记录

时间:2014-01-20 10:13:59

标签: mysql duplicates records

我在mysql中有一个表有1319个重复记录,如何删除重复值但保存了1个记录?

2 个答案:

答案 0 :(得分:0)

有很多选择:

首先使用这种查询:

DELETE FROM comments c1 
WHERE EXISTS (SELECT * 
              FROM comments c2 
              WHERE c2.id <> c1.id 
                AND c2.NAME = c1.NAME 
                AND c2.email = c1.email 
                AND c2.COMMENT = c1.COMMENT)
  AND c1.id <> (SELECT MIN(c2.id) 
                FROM comments c2 
                WHERE c2.NAME = c1.NAME 
                  AND c2.email = c1.email 
                  AND c2.COMMENT = c1.COMMENT)

第二

创建另一个具有相同结构的空白表,并在所有列或少数唯一列上使用group by插入到第二个表中。

第三

使用alter ignore table应用唯一键。

答案 1 :(得分:0)

试试这个......

  

DELETE FROM tbl           在哪里没有(               SELECT * FROM(SELECT id FROM tbl GROUP BY col1,col2,           )AS p)