mysql重复我的行过夜

时间:2013-05-28 00:19:54

标签: mysql duplication

好的,我知道这可能听起来很糟糕,但是在周六的某个时候通过一个意想不到的滚球,我以前从未遇到过这个问题。

所以我们有一个名为employees的数据库表 在该表中,您有

之类的记录
Russell
Smith
Sam

但突然间我

Russell
Russell
Smith
Smith
Smith
Sam
Sam
Sam

如果有人知道如何解决此问题,请下载完整的表并手动修复并重新上传,这将是很好的

2 个答案:

答案 0 :(得分:1)

如果您的表格中有id列,并且您只想保留id最低的记录,则可以

delete from employees 
where id not in 
(
   select * from 
   (
     select min(id) 
     from employees 
     group by name
   ) x
)

答案 1 :(得分:0)

我的建议:

(1)创建一个新的临时表:

create temporary table xxx as
    select distinct * from employees

(2)截断原始表

truncate table employees

(3)将记录重新插入

insert into employees
    select * from xxx

通过截断表,您将保留几乎所有与之相关的信息 - 安全性,触发器,约束。一个问题可能是自动递增的主键。如果您有其中一个,这可能无效(但如果有主键,则无法复制记录)。