我现在想给某张表的某个字段加个唯一约束
但是现在已经有很多重复值了
alter table xxx add unique()会失败
有没有什么办法让mysql合并重复数据变成一条数据?

解决方案 »

  1.   

    合并没有规则,比如:
    name列上有unique约束,并且有唯一值
    有四行row的name的值都是‘mary’,那么合并后,随便删除三条,我只要mysql保证保留其中某一条就行。
    表里大概有40w条数据,5000条重复数据。
      

  2.   

    表中加入唯一标识的字段ID,自增
    delete a from b1 a inner join b1 b on a.name=b.name and a.id>id
      

  3.   

    四行name的值都是‘mary’中,有什么字段可以唯一区别这四条记录的呢? 比如有个COL1,则可以直接Delete a From 某张表 a inner join 某张表 b on a.name=b.name and a.COL1>b.COL1