try:
delete from tablename a where id in (select id from tablename where id<>a.id)

解决方案 »

  1.   

    如果二条记录完全相同,是没有办法只删掉其中一条的,要不是两条者删除,要不是都不删除。但只要有一个字段有不同的值(其它字段值都相同)假设为diff 则删除为:
    delete from 表名 where diff not in (select min(diff) from 表名 group by 除diff以外的所有字段)
      

  2.   

    1、所有字缎都一样的
    CREATE TABLE tmp  SELECT * FROM haha WHERE 1 = 0;
    INSERT INTO tmp SELECT DISTINCT * FROM haha;
    DROP TABLE haha;
    ALTER TABLE tmp RENAME TO haha;
      

  3.   

    1、所有字缎都一样的;完全相同的记录。CREATE TABLE tmp SELECT DISTINCT * FROM haha;
    DROP TABLE haha;
    ALTER TABLE tmp RENAME TO haha;2、将一个字段比如 id 作为重复记录判断CREATE TABLE tmp SELECT  * FROM haha group by id;
    DROP TABLE haha;
    ALTER TABLE tmp RENAME TO haha;