删除mysql中的所有重复行,不要保留一个

时间:2014-08-20 00:47:13

标签: mysql sql

我发现的只是如何从表中删除副本但保留一个副本。我想要的是如何删除所有重复,甚至不保留一个。例如

    name   +   lastname
   ____________________
    a      +   something
    a      +   something
    b      +   something
    c      +   something

成为

    name   +   lastname
    ____________________
    b      +   something
    c      +   something

感谢您的回答

1 个答案:

答案 0 :(得分:0)

好的,根据我对数据库的经验(例如MySql),您只需要: DELETE FROM SomeTable WHERE name =" a" 删除从SELECT语句中看到的所有重复值。

根据我的经验,没有其他方法可以自动删除重复的行,因为MySql没有提供这样的机制(如果我错了,请纠正我)。但是,MySql具有防止重复行发生的机制。此机制称为" 主键"。主键确保表中的字段不会重复。例如,使用以下语句创建表时:

  

创建表SomeTable(    name varchar(50) 主键 ,    lastname varchar(50)   )

您只需对MySql" Hey MySql说,使用name和lastname字段创建此SomeTable。但是对于name字段,请确保表中没有DUPLICATED值!"。这意味着如果名称字段具有" a"作为表中的值ALREADY,MySql将阻止并抛出以下语句的错误: 插入SomeTable VALUES(" a"," bla bla"); 为什么?仅仅因为价值" a"已经存在于表中。