读书人

mysql 剔除表中的重复记录只保留其中

发布时间: 2012-07-25 09:43:05 作者: rapoo

mysql 删除表中的重复记录,只保留其中一条
今天蠢了一下午 不如花5分钟搜索。。
查询重复记录 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 字段有重复的记录。

读书人网 >Mysql

热点推荐