mysql数据库删除重复数据

mysql数据库删除重复数据,第1张

直接拿1楼的来改吧,

delete from zhszty_ebook

where id not in(

select from (select max(id) from zhszty_ebook group by url

) as tmp);------------mysql有个特性,对于表进行修改,删除 *** 作,子查询不能和外层的查询的表一样,所以在加个select就可以了。其他数据库按照楼上的那个是没问题的

你要先找到规律,并且有确定的限制条件。是否所有的重复数据都删了只留一条?旧数据和新数据的界定是什么?是某个时刻?那旧数据中有重复数据删不删?重复数据是指仅仅title字段信息一样?

如果是在工作上,删除数据是一项很严谨的事,这个你必须要想清楚所有的条件情况,只是这样几句话,让网友给个sql语句,直接用上去,害的是你自己。

也不知道你的数据库具体是怎么样的,给个一般删除重复数据的方法

select

distinct

into

#Tmp_aa

from

tableName

把不重复的找出来插入到临时表

drop

table

tableName

删掉原来的表

select

into

tableName

from

#Tmp_aa

把临时表插入到新建的tableName

drop

table

#Tmp_aa

删掉临时表

方法很多,说一个最简单的。

先建一个表,结构和原来的表一样,但是在你要去重的列建立一个主键,并设置“忽略重复键”,把原表中的所有数据插入这个新表,

此时新表中的数据就已经是非重复的了。

把原表数据都删掉,把新表中的数据都导回来就ok了

表里只有两列??如果是可以这样做

1、select region,store_name into Geography_bak from Geography group by region,store_name

--去掉重复记录的数据写在一个备份表中

2、删除原表的记录。

delete from Geography

3、将没有重复记录的数据插回原表。

insert Geography select from Geography_bak

4、删除备份表

drop table Geography_bak

1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。

delete

from

where

aa

in

(select

aa

from

group

by

aa

having

count(aa)

>

1)

and

bb

not

in

(select

max(bb)

from

group

by

aa

having

count(aa)

>

1);

2、有多种写法:

delete

A

from

B

where

AAA

=

BAA

delete

A

from

A,B

where

AAA

=

BAA

delete

A

where

AA

in

(select

AA

from

B)

3、使用into关键字:

select

into

新表名

from

原表

4、取数据前3位,字段必须是类似char类型,使用类似substring这样的函数(SYBASE是substring,ORACLE是substr):

select

substring(字段,1,3)

from

表名

以上就是关于mysql数据库删除重复数据全部的内容,包括:mysql数据库删除重复数据、sql删除数据库中重复的数据语句怎么写、数据库中怎么删除重复的记录,只保留唯一的记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9331862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存