MySQL 删除数据库中重复数据(以部分数据为准)
来源:互联网 发布:常熟淘宝招聘信息 编辑:程序博客网 时间:2024/05/16 06:30
where tel in (select min(dpxx_id) from zqzrdp group by tel having count(tel)>1);
执行,报错
异常意为:你不能指定目标表的更新在FROM子句。傻了,MySQL 这样写,不行,让人郁闷。
难倒只能分步操作,蛋疼
以下是网友写的,同样是坑爹的代码,我机器上运行不了。
1. 查询需要删除的记录,会保留一条记录。
代码如下复制代码select a.id,a.subject,a.RECEIVER from test1 a left join (select c.subject,c.RECEIVER ,max(c.id) as bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b on a.id< b.bid where a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id < b.bid
2. 删除重复记录,只保留一条记录。注意,subject,RECEIVER 要索引,否则会很慢的。
代码如下复制代码delete a from test1 a, (select c.subject,c.RECEIVER ,max(c.id) as bid from test1 c where status=0 GROUP BY RECEIVER,SUBJECT having count(1) >1) b where a.subject=b.subject and a.RECEIVER = b.RECEIVER and a.id < b.bid;
3. 查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
4. 删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
5.删除表中多余的重复记录(多个字段),只留有rowid最小的记录
代码如下复制代码delete from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
- MySQL 删除数据库中重复数据(以部分数据为准)
- 【数据库】MySQL删除表中重复数据
- 删除数据库中重复数据
- 删除数据库中重复数据
- 数据库中删除重复数据
- 数据库中删除重复数据
- 数据库中删除重复数据
- mysql 中删除重复数据
- MySQL 删除数据库中重复数据方法小结
- mysql删除数据库的重复数据
- MySQL 中查找重复数据,删除重复数据
- Mysql中查找重复数据,删除重复数据
- execl数据导入;以构建表为准
- 删除数据库重复数据
- 数据库删除重复数据
- 删除数据库重复数据
- 数据库删除重复数据
- 数据库删除重复数据?
- HDUACM 1001
- maven生命周期理解
- FreeRTOS任务切换解析
- redis使用
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
- MySQL 删除数据库中重复数据(以部分数据为准)
- java去除List中重复的元素
- APMServ5.2.6 升级PHP版本 到高版本 5.3,5.4
- php 数组转化成json格式工具
- zigbee定位的概念
- C++中的抽象类以及接口的区别联系
- HDUACM 1002
- 动画
- Android 防止多次点击,Toast重复显示