MYSQL删除重复数据的简单方法_Mysql

复制代码 代码如下:

CREATETABLE`users`(
`id`int(10)NOTNULLAUTO_INCREMENT,
`name`char(50)NOTNULL,
PRIMARYKEY(`id`)
)

复制代码 代码如下:

deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1);

结果报错:1093youcan'tspecifytargettable....

原因是mysql删除动作不能带有本表的查询动作,意思是你删除users表的东西不能以users表的信息为条件所以这个语句会报错,执行不了。只要通过创建临时表作为查询条件。如下

复制代码 代码如下:

deletefromuserswhereidin(select*from(selectmin(id)fromusersgroupbynamehavingcount(name)>1));

还要注意deletefromusers这里不能用别名

其他方法。

复制代码 代码如下:

deleteusersasafromusersasa,(selectmin(id)id,namefromusersgroupbynamehavingcount(name)>1
)asbwherea.name=b.nameanda.id<>b.id;

建立临时表:

复制代码 代码如下:

createtabletmp_usersselectmin(`id`),`name`fromusersgroupbyname;

truncatetableusers;
insertintousersselect*fromtmp_users;
droptabletmp_users;

时间: 2024-09-11 13:20:08

MYSQL删除重复数据的简单方法_Mysql的相关文章

MySQL中删除重复数据的简单方法_Mysql

MYSQL里有五百万数据,但大多是重复的,真实的就180万,于是想怎样把这些重复的数据搞出来,在网上找了一圈,好多是用NOT IN这样的代码,这样效率很低,自己琢磨组合了一下,找到一个高效的处理方式,用这个方式,五百万数据,十来分钟就全部去除重复了,请各位参考. 第一步:从500万数据表data_content_152里提取出不重复的字段SFZHM对应的ID字段到TMP3表 create table tmp3 as select min(id) as col1 from data_content

mysql删除重复记录语句的方法_Mysql

例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet

mysql去掉重复值的简单方法

一.mysql去掉重复值的简单方法 例子:     table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录.  代码如下 复制代码 select distinct name from table 得到的结果是: name a b c 二.取得表数据的组数  代码如下 复制代码 方法一.select count(distinct

MySQL删除数据库的两种方法_Mysql

本文为大家分享了两种MySQL删除数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用户拥有最高权限,可以使用 mysql mysqladmin 命令来创建数据库. 在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失. 以下实例删除数据库TUTORIALS(该数据库在前一章节已创建): [root@h

sql删除重复数据的详细方法_MsSql

一. 删除完全重复的记录 完全重复的数据,通常是由于没有设置主键/唯一键约束导致的.测试数据: 复制代码 代码如下: if OBJECT_ID('duplicate_all') is not nulldrop table duplicate_all GO create table duplicate_all ( c1 int, c2 int, c3 varchar(100) ) GO insert into duplicate_all select 1,100,'aaa' union allse

mysql删除重复数据记录sql语句总结

我最常用的方法是  代码如下 复制代码 //删除id重复的数据,适合id是手工主键 delete person as a from person as a, (     select *,min(id) from person group by id having count(1) > 1 ) as b where a.id = b.id //查找重复的,并且除掉最小的那个  代码如下 复制代码 delete tb_person as a from tb_person as a, ( selec

sql删除重复数据的详细方法

  重复数据,通常有两种:一是完全重复的记录,也就是所有字段的值都一样;二是部分字段值重复的记录. 一. 删除完全重复的记录 完全重复的数据,通常是由于没有设置主键/唯一键约束导致的. 测试数据: if OBJECT_ID('duplicate_all') is not null drop table duplicate_all GO create table duplicate_all ( c1 int, c2 int, c3 varchar(100) ) GO insert into dup

Navicat for MySQL导出表结构脚本的简单方法_Mysql

使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法. 1.右键Navicat中的数据库→数据传输(Data Transfer). 2.左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)选择脚本存储的名称及位置,再在上面选择高级(Advanced). 3.去掉记录选项(Record Options)中插入记录(Insert records)的勾. 4.左边的表选项(Table Options)里,可以根据自己情况勾选

MySQL处理重复数据的方法_Mysql

有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据.防止表中出现重复数据 你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性. 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录. CREATE TABLE person_tbl ( first_name CHA