我的列 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吗?
答案 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
- 以防万一。