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;
相关推荐
-
Mysql删除重复数据保留最小的id 的解决方法
在网上查找删除重复数据保留id最小的数据,方法如下: DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) > 1 ) AND peopleId NOT IN ( SELECT min(peopleId) FROM people GROUP BY peopleName HAVING count(peopleName) >
-
MySQL数据库中删除重复记录的方法总结[推荐]
表结构: mysql> desc demo; +-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(11) unsigned | NO | PRI | NULL
-
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数据去重复
MySQL数据库中查询重复数据 select * from employee group by emp_name having count (*)>1; Mysql 查询可以删除的重复数据 select t1.* from employee t1 where (t1.emp_name) in (select t4.emp_name from (select t2.emp_name from employee t2 group by t2.emp_name having count(*)>1)
-
删除mysql数据库中的重复数据记录
采用的是下面的方法可删除,假设重复的是test数据库中的title字段 复制代码 代码如下: create table bak as (select * from test group by title having count(*)=1); insert into bak (select * from test group by title having count(*)>1); truncate table test; insert into te
-
删除MySQL重复数据的方法
本文实例讲述了删除MySQL重复数据的方法.分享给大家供大家参考.具体方法如下: 项目背景 在最近做的一个linux性能采集项目中,发现线程的程序入库很慢,再仔细定位,发现数据库里面很多冗余数据.因为在采集中,对于同一台设备,同一个时间点应该只有一个数据,然而,数据库中存入了多个数据.对于如何造成了这个结果,一时没有想清楚,但为了解决入库慢的问题,首先要删除冗余数据. 问题描述 数据库的表结构很简单,如下: 复制代码 代码如下: +----------------+--------------+
-
mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Acalanes High School 120 89 1242 Academy Of The Canyons 30 30 1243 Agoura High School 89 40 1244 Agour
-
MySQL 删除数据库中重复数据方法小结
刚开始,根据我的想法,这个很简单嘛,上sql语句 delete from zqzrdp where tel in (select min(dpxx_id) from zqzrdp group by tel having count(tel)>1); 执行,报错!!~!~ 异常意为:你不能指定目标表的更新在FROM子句.傻了,MySQL 这样写,不行,让人郁闷. 难倒只能分步操作,蛋疼 以下是网友写的,同样是坑爹的代码,我机器上运行不了. 1. 查询需要删除的记录,会保留一条记录. select
-
MYSQL删除重复数据的简单方法
复制代码 代码如下: CREATETABLE`users`(`id`int(10)NOTNULLAUTO_INCREMENT,`name`char(50)NOTNULL,PRIMARYKEY(`id`)) 复制代码 代码如下: deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1); 结果报错:1093youcan'tspecifytargettable.... 原因是mysql删除动作不能带有
-
mysql删除重复行的实现方法
表relation create table relation( id int primary key auto_increment, userId int not null, fanId int not null ); 插入几条数据 insert into relation(userId,fanId) values(1,1) ,(1,1) ,(1,1), (2,2),(2,2) ,(3,3),(3,3); 表中的数据 id userId fanId 1 1 1 2 1 1 3 1 1 4 2
-
Mysql 删除重复数据保留一条有效数据(最新推荐)
目录 Mysql 删除重复数据保留一条有效数据 一.Mysql 删除重复数据,保留一条有效数据 二.Mysql 删除重复数据(多个字段分组) 三.Mysql 查询出可以删除的重复数据 补充:mysql删除重复记录并且只保留一条 MySql如何删除所有多余的重复数据 需要处理的数据,如: Mysql 删除重复数据保留一条有效数据 一.Mysql 删除重复数据,保留一条有效数据 DELETE FROM SZ_Building WHERE id NOT IN ( SELECT t.min_id FRO
-
Mysql删除重复数据并且只保留一条(附实例!)
(1)以这张表为例: CREATE TABLE `test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '注解id', `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名字', PRIMARY KEY (`id`) USING BTREE ) ENGI
-
sql删除重复数据的详细方法
一. 删除完全重复的记录 完全重复的数据,通常是由于没有设置主键/唯一键约束导致的.测试数据: 复制代码 代码如下: 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删除重复记录语句的方法
例如: 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数据库删除重复数据只保留一条方法实例
1.问题引入 假设一个场景,一张用户表,包含3个字段.id,identity_id,name.现在身份证号identity_id和姓名name有很多重复的数据,需要删除只保留一条有效数据. 2.模拟环境 1.登入mysql数据库,创建一个单独的测试数据库mysql_exercise create database mysql_exercise charset utf8; 2.创建用户表users create table users( id int auto_increment primary
-
MySQL 处理重复数据的方法(防止、删除)
有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据. 防止表中出现重复数据 你可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性. 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录. CREATE TABLE person_tbl ( first_name
随机推荐
- 一个常用的报表统计SQL语句
- apache性能测试工具ab使用详解
- Oracle 存储过程总结(一、基本应用)
- JavaScript prototype属性深入介绍
- 详解使用fetch发送post请求时的参数处理
- Python程序中使用SQLAlchemy时出现乱码的解决方案
- Node.js 基础教程之全局对象
- 启动iis出现发生意外0x8ffe2740的解决方法
- java实现利用String类的简单方法读取xml文件中某个标签中的内容
- 将\u8BF7\u9009\u62E9 这样的字符串转为汉字的代码
- js纯数字逐一停止显示效果的实现代码
- Java冒泡排序(Bubble Sort)实例讲解
- JQuery获取鼠标进入和离开容器的方向
- JavaScript操作HTML元素和样式的方法详解
- node.js 发布订阅模式的实例
- javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
- 改注册表保证顺利关机—排除奇怪故障一例
- Android应用中ListView利用OnScrollListener分页加载数据
- Laravel实现构造函数自动依赖注入的方法
- Android程序锁的实现以及逻辑