删除mySQL中的相同记录

时间:2016-03-27 14:53:07

标签: mysql duplicates records

我的列 ID A B 。在表1中

ID =自动编号,主键

A =外键

B =外键

此表适用于多对多,暂时忽略列ID。 我需要删除多对多的重复项。

示例:

+----+---+
| A  | B |
+----+---+
| 1  | 1 |
| 1  | 2 |
| 1  | 1 |
| 1  | 2 |
| 1  | 3 |
| 2  | 1 |
+----+---+

将其变为

+----+---+
| A  | B |
+----+---+
| 1  | 1 |
| 1  | 2 |
| 1  | 3 |
| 2  | 1 |
+----+---+

删除那些不必要的重复项。 你可以帮我查询MySQL吗?

1 个答案:

答案 0 :(得分:0)

对于任何大小的表,截断表并重新插入记录然后执行大量删除通常会更快。当有问题的表没有主键时,尤其如此。

因此,我建议这样的事情:

create table temp_table1 as
    select distinct a, b
    from table1;

truncate table table1;

insert into table1(a, b)
    select a, b
    from table1;

当然,在做任何事情之前复制table1 - 以防万一。