首先,先说明一个问题。这样的结果出现,说明系统设计是有问题的。
其次
删除重复数据,你要提供你是什么数据库。
不同数据库会有不同的解决方案。
关键字Distinct
去除重复,如下列SQL,去除Test相同的记录;
1
select
distinct
Test
from
Table
2
如果是要删除表中存在的重复记录,那就逻辑处理,如下:
3
select
Test
from
Table
group
by
Test
having
count(test)>1
4
先查询存在重复的数据,后面根据条件删除
还有一个更简单的方法可以尝试一下:
select
aid,
count(distinct
uid)
from
表名
group
by
aid
这是sqlserver
的写法。
如图一在数据表中有两个膀胱冲洗重复的记录。
2
可以通过sql语句“select
from
表名
where
编码
in(select
编码
from
表名
group
by
编码
having
count(1)
>=
2)”来查询出变种所有重复的记录如图二
3
通过sql语句"
delete
from
表名
where
编码
in(select
编码
from
表名
group
by
编码
having
count(1)
>=
2)
and
编码
not
in
(select
max(编码)from
表名
group
by
编码
having
count(1)
>=2)
"来删除重复的记录只保留编码最大的记录
因为你的数据库表中没有索引,修改表结构,增加一个索引列(里面的数据可以定为自动加1的方式),然后再删除就可以了
明白,按我说的做:
1、重新编辑表2的结构
2、增加1个列,名字随便取
3、设置这个新的列为自动加1
4、将这个列置为KEY
5、保存修改
6、进行删除 *** 作
7、 *** 作完毕再修改这个表的结构,把新增的列删除掉
8、应该就OK了
说真的,我也不清楚这个问题产生的原理,不过只要有作为KEY的列就不会出现这个问题
不建议直接删除,养成良好的习惯(删除更麻烦),以下是将去重后的数据转移到另一张表代码:
Insert into 表名(列名)select distinct 列名 from 表名
你可以按照去重的思路,删除重复数据
以上就是关于SQL查询,如何去除重复的记录全部的内容,包括:SQL查询,如何去除重复的记录、怎样删除数据库里的重复记录、mysql数据库中怎么删除重复的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)