删除重复的MySQL数据库

时间:2014-02-26 14:14:43

标签: mysql sql database

我正在尝试从MySQL表中删除重复项,其中两个列值将相同。

在这种情况下,我想要有一个id列(称为nid)和一个具有相同值的哈希列:

| nid |    hash    |
|  2  |   932298   |
|  2  |   932298   |

我只希望其中一个能够存活,最好是插入数据库中的第一个。

我正在看这篇文章,但我的用例略有不同:

MySQL remove duplicates from big database quick

我也对其他选项持开放态度

2 个答案:

答案 0 :(得分:1)

ALTER IGNORE TABLE `table_name` ADD UNIQUE (`hash`)

答案 1 :(得分:0)

实现它的最简单方法我相信:

1) create table `table_copy`(id int primary key,hash varchar(255), unique(`hash`)) select distinct id,hash from `table_name`;
2) drop table `table_name`;
3) rename table `table_copy` to `table_name`;