免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2495 | 回复: 7
打印 上一主题 下一主题

mysql删除重复的记录 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-04 16:41 |只看该作者 |倒序浏览
重复记录如下:
         请问该如何删除。

1234.png (12.66 KB, 下载次数: 53)

1234.png

论坛徽章:
0
2 [报告]
发表于 2009-01-07 00:46 |只看该作者
新建一个临时表  
  create   table   tmp   as   select   *   from   youtable   group   by   name  
  删除原来的表  
  drop   table   youtable  
  重命名表  
  alter   table   tmp   rename   youtable

论坛徽章:
0
3 [报告]
发表于 2009-01-07 09:03 |只看该作者
原帖由 ttplay 于 2009-1-7 00:46 发表
新建一个临时表  
  create   table   tmp   as   select   *   from   youtable   group   by   name  
  删除原来的表  
  drop   table   youtable  
  重命名表  
  alter   table   tmp   rename   y ...


这个错了
如果name相同而其他不同时 那么其它列的值是不一定的。

论坛徽章:
0
4 [报告]
发表于 2009-01-07 11:09 |只看该作者
insert into t1 select * from t group by col_1, col_2, col_3...
然后再rename t1~
不过效率怎样待讨论。可能有更好的办法,欢迎交流~

刚和别人讨论,这个应该更好:
alter ignore table t1 add unique key1 (col_1, col_2, col_3 ... );

[ 本帖最后由 andrefun 于 2009-1-7 11:27 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-01-07 11:17 |只看该作者
原帖由 DQP 于 2009-1-7 09:03 发表


这个错了
如果name相同而其他不同时 那么其它列的值是不一定的。



其他列不同时,那就可以用值不同的列直接区分出两条记录了,也就不用二楼的这个方法了。
针对LZ的问题,我同意2#的方法

论坛徽章:
0
6 [报告]
发表于 2009-01-07 11:53 |只看该作者

回复 #5 日月如尧 的帖子

我是说如果用#2的方法可能会出现这样的情况

  1. table: t
  2. name col2 col3 col4
  3. a        1    2     3
  4. a        1    2     3
  5. b        1    2     5
  6. b        1    4     3

  7. 目的是去掉a        1    2     3
  8. 而用了#2的方法后的结果是
  9. a        1    2     3
  10. b        1    4     3
  11. 而且有可能更糟糕 出现 b        1    2    3
  12. 如果要用group by的话那就应该把所有的列都加上
  13. 实际上应该用distinct
  14. 也许group by可以组合索引 那就是优化的事了 我不太懂
复制代码

论坛徽章:
0
7 [报告]
发表于 2009-01-07 14:41 |只看该作者
4# 的方法LZ可以试试
6# 我知道你什么意思了

论坛徽章:
0
8 [报告]
发表于 2009-01-08 11:35 |只看该作者
方法很多。LZ参考下LS各位的办法,或者搜索一下老帖子吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP