搜索
首页 电脑/网络 程序设计 数据库

sql中如何删除一个表中重复的纪录

  假设我有一个表table key id name 1 | 1001 | 张飞 2 | 1001 | 张飞 3 | 1002 | 关羽 4 | 1003 | 刘备 5 | 1004 | 马超 6 | 1004 | 马超 7 | 1005 | 曹操 很明显,张飞的记录重复了,我要删除任意一条重复的纪录该如何操作?如果我想指定删除按照key排序的第二条重复纪录我该如何写sql?我的意思是我要删除key为2和6的这两条记录,因为他们是第二次出现的。
  当然了,最首要实现的是能删除一条重复的,不管怎么删,只要能让我保证数据的唯一性就行。如果id相同就可以判定两条记录重复了,name是否相同并不重要。 。

全部回答

2006-07-31

0 0

  用distinc命令可以去掉重复命令比如: select distinct id from table 或者使用uniqe替代distinct都是一样得 但这只能在显示结果中显示并没有实际改变表中得值 不过你可以写一个update命令使表中数据改变 大概是大概是delete from table where id=distinct(id) 不知对不对,但是排除重复记录得语句肯定是distinct我用的是oracle数据库测试成功 。
  

2006-07-28

74 0

    表设计的确存在问题! 我想解决办法可以有两种: 1、如果有前台编程,可以在代码中进行判断处理删除提交即可。 2、可以使用游标,在定义游标时,要对ID列进行ORDER BY排序,然后循环判断,如果当前记录和上一条记录ID重复,就删除当前行。
   至于用一句SQL语句来实现,我想了半天,没想出来! 下面这句话,可以找到重复的ID记录行。   select key,id from test group by id having count(id) > 1; 但这是一个结果集,保留和删除的记录行都在一起,仍然不能够做为删除语句的唯一条件。
   。

2006-07-27

51 0

数据库设计本身就有问题! 建用ID作为主键! 像1 2这样的记录根本就没有意义嘛!

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
数据库
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
程序设计
数据库
C/C++
VB
JAVA相关
C#/.NET
VC++
汇编语言
其他编程语言
数据库
数据库
举报
举报原因(必选):
取消确定举报