mysql 删除表中的重复记录,只保留其中一条

查询重复记录 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 字段有重复的记录。

此条目发表在 程序 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>