• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 删除数据库中重复数据的几个方法

删除数据库中重复数据的几个方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了删除数据库中重复数据的几个方法等相关知识,希望本文的分享对您有所帮助

删除数据库中重复数据的几个方法

方法一

declare @max integer,@id integer

declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) > 1

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0

方法二

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName

drop table tableName

select * into tableName from #Tmp

drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下:

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName

select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

select * from #Tmp where autoID in(select autoID from #tmp2)

最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05 MySQL安装教程图文详解
  • 2017-05-11用一条mysql语句插入多条数据
  • 2017-05-11mysql数据库连接池配置教程
  • 2018-12-05介绍一个简单的数据库Database 教程(四)
  • 2018-12-05使用SQLSERVER 2005/2008 递归CTE查询树型结构的方法
  • 2017-05-11将MySQL的临时目录建立在内存中的教程
  • 2017-09-02MySQL分布式集群之MyCAT的配置文件schema.xml详解
  • 2017-05-11DBA应该知道的一些关于SQL Server跟踪标记的使用
  • 2018-12-05MySQL中添加新用户权限的实例详解
  • 2018-12-05有关排他锁的课程推荐10篇

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 让MySQL支持中文排序的实现方法
    • MySQL索引的使用
    • oracle sys_connect_by_path 函数 结果集连接
    • MySQL性能优化的一些技巧帮助你的数据库
    • 有关mysql中ROW_COUNT()的小例子
    • Mac下安装mysql5.7.18的详细步骤
    • MySQL触发器使用
    • mysql实现随机查询经验谈
    • 分享一个sqlyog连接数据库乱码的问题以及解决方法
    • 一个常用的报表统计SQL语句

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有