先查询重复记录:select * from table GROUP BY name;
然后,只把有重复的显示出来
select * , count(*) as nums from tab_a group by name having nums>1;
方法一:(这个方法比较不错,只是自增字段会重建)
新建一个临时的表
create table tmp as select * from youtable group by name;
删除原来的表
drop table youtable;
重命名表
alter table tmp rename youtable;
方法二:(未试过)
CREATE TEMPORARY TABLE
bad_temp2(id VARCHAR(10), name VARCHAR(20))
TYPE=HEAP;
INSERT INTO bad_temp2(name) SELECT DISTINCT name FROM bad_table2;
DELETE FROM bad_table2;
INSERT INTO bad_table2(id,name) SELECT id,name FROM bad_temp2;
以上方法采用建立临时表的办法删除了bad_table2中name字段有重复的记录。
评论