MySQL使用不同的密钥删除重复项

时间:2012-07-29 17:33:40

标签: mysql database duplicates

我搞砸了数据库中的几个表,结果相似但键不同。 结果是这样的:

1   |2   |3   
5   |25  |25
6   |25  |25
7   |31  |31
8   |31  |31

我想删除那些重复的行,以便结果如下:

1   |2   |3
5   |25  |25
7   |31  |31

我尝试了SELECT * DISTINCT 2 FROM TABLE但是没有用。对不起,我不能说得更好!

2 个答案:

答案 0 :(得分:0)

delete from your_table
where id not in (
                 select * from (select min(id) from your_table
                                group by col2, col3)
                 t_alias
                )

SQLFiddle example

答案 1 :(得分:0)

DELETE FROM the_table dt
WHERE EXISTS ( SELECT *
    FROM the_table ex
    WHERE ex.col2 = dt.col2
    AND ex.col3 = dt.col3
    AND ex.id < dt.id
    );