delete t from k2 t left join
    -> (select name,min(id) as minid from k2 group by name) t1
    -> on t.id=t1.minid
    -> where t1.minid is null;
Query OK, 0 rows affected (0.15 sec)
重复记录只留一条的效果,没有实现

解决方案 »

  1.   

    create table t2_tmp select distinct id,name,address,birthday from tb;
    drop table t2;
    rename table t2_tmp to t2;
      

  2.   

    用limit去限制查询结果
    mysql> select * from b;
    +------+-----------+-------+----------+-------+
    | id   | riqi      | shuzi | xingming | btese |
    +------+-----------+-------+----------+-------+
    |    1 | 2014/10/1 | 12    | zhangsan |    99 |
    |    1 | 2014/10/1 | 12    | zhangsan |    99 |
    +------+-----------+-------+----------+-------+
    2 rows in set (0.00 sec)mysql> delete from b where id=1 limit 1;
    Query OK, 1 row affected (0.02 sec)mysql> select * from b;
    +------+-----------+-------+----------+-------+
    | id   | riqi      | shuzi | xingming | btese |
    +------+-----------+-------+----------+-------+
    |    1 | 2014/10/1 | 12    | zhangsan |    99 |
    +------+-----------+-------+----------+-------+
    1 row in set (0.00 sec)
      

  3.   


    这个方法,是可以清楚相同的记录。 我试了下,如果5条记录都相同的情况下:
    mysql> delete from b where id=1 limit 1;
    作上述操作
     相同记录,还剩下4条,mysql> delete from b where id=1 limit 3;
    又做了如上操作再查询表,此时只剩下1条了,满足最初的要求了。咋样写,也就是Limit   后面的现在数字能不能动态获得?
    如总共有5个相同记录,只保留1条,动态设置 limit后面的数字为4?
      

  4.   

    重新创建另一表,然后 select distinct ... 插入到新创建表,然后删除棹表,再更名新表为原表名。这个方法并不完善,也未必适用楼主的情况。但别无它法。
      

  5.   


    create table Tmp select distinct * from k2;
    drop table k2;
    create table AUTHORS select * from Tmp; 
    drop table Tmp ;
      

  6.   


    这个方法,是可以清楚相同的记录。 我试了下,如果5条记录都相同的情况下:
    mysql> delete from b where id=1 limit 1;
    作上述操作
     相同记录,还剩下4条,mysql> delete from b where id=1 limit 3;
    又做了如上操作再查询表,此时只剩下1条了,满足最初的要求了。咋样写,也就是Limit   后面的现在数字能不能动态获得?
    如总共有5个相同记录,只保留1条,动态设置 limit后面的数字为4?
    如果要批量删除重复,版主的方法该是最高效的了
      

  7.   

    另外一个方法就是,增加一行ID,自增唯一
    通过min(id)获取相同行最小ID,>min(id)删除,也可以!