mysql数据库去除重复数据的方法:1、查询需要删除的记录,会保留一条记录;2、删除重复记录,只保留一条记录,代码为【delete a from test1 a, (...)as bid from test1 c where..】。

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 a where (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)

看来想偷懒使用一句命令完成这个事好像不太显示,还是老老实实的分步处理吧,思路先建立复制一个临时表,然后对比临时表内的数据,删除主表里的数据alter table tableName add autoID int auto_increment not null;

create table tmp select min(autoID) as autoID from tableName group by Name,Address;

create table tmp2 select tableName.* from tableName,tmp where tableName.autoID = tmp.autoID;

drop table tableName;

rename table tmp2 to tableName;更多相关免费学习推荐:mysql教程(视频)

mysql中如何去除重复数据_mysql数据库如何去除重复数据相关推荐

  1. mysql 处理数据_MySQL数据库,如何处理重复的数据?

    前言 这是一个基本问题,这篇文章是我很早之前遇到的一种情况,后来在学习视频的时候又遇到了一次,因此给出一个总结.其实解决能否插入重复数据的问题,一般情况下是有两个思路,就像治水一样,第一个就是从源头, ...

  2. mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案

    [简答题]MySQL 语言中包含数都定义语言.数据操纵语言和数据控制语言,分别有哪些功能? [单选题]查询员工工资信息时,结果按工资降序排列,正确的是( ). [简答题]arrayList测验 [填空 ...

  3. mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...

    该篇文章我们介绍由于非法硬件关机,造成了MySQL数据库的数据表损坏,数据库不能正常运行的一个实例.下面学步园小编来讲解下MySQL数据库非法关机造成数据表损坏怎么排查? MySQL数据库非法关机造成 ...

  4. mysql插10万条数据_MySQL数据库插入100w条数据要花多久?

    MySQL数据库插入100w条数据要花多久? 1.多线程插入(单表) 2.多线程插入(多表) 3.预处理SQL 4.多值插入SQL 5.事务(N条提交一次) # 多线程插入(单表) 问:为何对同一个表 ...

  5. mysql查询单表的销售额_MYsql数据库单表百万数据量查询

    最近总在意自己的网页刷新数据的速度,mysql5.7和mysql8.0单表数据库导入百万甚至千万数据的时候,会不会卡死,会不会慢? 因此编写测试用例,通过Navicat Premium来查询单表的时间 ...

  6. mysql 删除时间范围数据_mysql数据库按时间删除数据总结

    今天访问程序时报如下异常: 主要原因如下: 数据库所在磁盘空间不够所致. 于是登录数据库所在的服务器,查看了下数据库所占的磁盘空间如下: 可以看到磁盘的33G,被全部占满了,于是就开始了数据库表的清理 ...

  7. mysql 导出中间 数据_MYSQL数据库之间的数据导出与导入

    源数据库地址: 172.16.1.7 目标数据库地址: 172.16.1.51 步骤: (1) 进入172.16.1.7服务器,登录mysql数据库 mysqldump -uusername -ppa ...

  8. mysql中获取一天、一周、一月时间数据的各种sql语句写法

    来源:http://www.jb51.net/article/50505.htm 今天抽时间整理了一篇mysql中与天.周.月有关的时间数据的sql语句的各种写法,部分是收集资料,全部手工整理,自己学 ...

  9. mysql怎么加载bak文件_MySQL数据库(表)的导入导出(备份和还原)

    一)在同一个数据库服务器上面进行数据表间的数据导入导出: 1. 如果表tb1和tb2的结构是完全一样的,则使用以下的命令就可以将表tb1中的数据导入到表tb2中: insert into db2.tb ...

最新文章

  1. C++ #if、#elif、#else和#endif指令 的使用
  2. oracle找到引起账户锁定的ip,Oracle 找到引起账户锁定的IP
  3. OpenCv cv::Mat 转 IplImage 函数
  4. [转帖]TLS 版本问题
  5. Mysql和Oracle获取自增主键
  6. Centos6.5硬盘故障修复
  7. 高性能MySQL(4)——查询性能优化
  8. python可视化报表制作教程_如何使用Python快速制作可视化报表
  9. 正则表达式:贪婪匹配与非贪婪匹配
  10. 广州 智播客 学工部_播客:30岁的水管工如何转变职业并成为全职开发人员
  11. 收藏 | 详解PyTorch中的ModuleList和Sequential
  12. Mysql如何清空数据库的单表数据 , 所有表数据
  13. Pascal 转 C++ 教程2
  14. 《大数据日知录》读书笔记 + 回顾补充(20190716 - 2019MMdd)
  15. Win11 25179.1000补丁推送了!
  16. vue-video-player 断点续播
  17. 百度地图API(WEB端/JavaScript API)--实际运用与扩展
  18. Java中的23种设计模式
  19. 经典神经网络论文超详细解读(三)——GoogLeNet InceptionV1学习笔记(翻译+精读+代码复现)
  20. 创芯科技-CAN收发器使用

热门文章

  1. 如何从“固定型”思维模式转化为“成长型”思维模式
  2. css3中-moz、-ms、-webkit、-o 各是什么意思
  3. linux调节伽马值软件,四个 Linux 下的“护眼”软件
  4. C++:求平均分(针对基本数据类型的应用)
  5. 控制反转 vs 依赖注入
  6. Moment.js 文档
  7. java tea属于红茶吗_武夷岩茶属于红茶吗
  8. 日历控件(bootstrap-datetimepicker.js)
  9. CAD学习笔记中级课【导入导出】
  10. python基础之布尔运算