很简单的语句   可用一个命令删除表中的重复数据   
delete from tt where a not in(select a from (select max(a) a from tt where b=b group by b) e);
 
例举一个简单的例子
 
a列有主键,而b列没有约束
 
 
我们看到b列有重复值,手动删除少量数据还可以,如果上千条就吃不消了。
我们首先要找出没有重复的数据
     
OK就是它,多余的都没有显示出来
那就可以用delete的命令开始删除了
可问题来了
 
这怎么删呢!  查询出的数据有问题,要改改查询方式
 
 查询出a的记录,就可以用a的记录把重复数据删除了
 
怎么还是错的呢!  我上网查过,发现时mysql自己不支持这种update,在oracle中就可做到。所以只能是多写一步,使update记录去修改一个临时表。
 
查询结果一样没问题,只要把没显示出来的数据删掉,就不没有重复的数据了。 
 成功删除2条记录
 
OK!重复数据被删除了。