一次现场mysql重复记录数据的排查处理实战记录

 更新时间:2021年10月05日 11:18:48   作者:AntCredit  
这篇文章主要给大家介绍了一次现场mysql重复记录数据的排查处理记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

我当时正好出差在客户现场部署调试软件,有一天客户突然找到我这里,说他们现场生产的数据出现了异常的情况,最直接的表现就是 同一个标签,出现在了多个物料上,需要我配合,看怎么排查问题

分析

客户当时直接一摞重复标签的盒子码在我面前,我慌得一匹,这怕不是捅娄子了

稍加思索,现在需要做的就是,在数据库中查询出重复的标签,即对一个标签进行统计,判断出计数> 1 的即可

emmm,语法错误,我记得还有个Having 来着,换上试试

好家伙,重复的标签有 1500 多条,再统计一下总共问题的记录数量,以及再分组看看标签重复次数的占比数据

对了,先把这些重复标签数据扔个客户去追溯产品(幸好 navicat 支持复制数据)

数据总计

以上一条查询记录的结果为临时表,在此基础上,用 sum() 求和

重复的记录有点多,这问题有一点点大了

重复次数占比

对之前的查询表换一个查询方式,即对 count 数据再次分组

从结果来看,绝大部分问题数据重复了2次

where 和 having 的区别

Where是一个 约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面 不能使用聚合函数

Having是一个 过滤声明,所谓过滤是 在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用聚合函数。

所谓 聚合函数,是对一组值进行计算并且返回单一值的函数:sum---求和,count---计数,max---最大值,avg---平均值等。

总结

在 mysql 的查询操作中,我们日常用到的,一般都是多表联查,将查询的结果当成中间表进行多次查询,对查询的结果做分组,做统计汇总等操作

如果查询操作中使用了函数计算或者是分组,典型的特征就是将原始表的多条记录合并成一条,就需要 having 对这些操作的结果进行过滤,除此之外,使用 where 对表记录进行条件过滤即可

到此这篇关于现场mysql重复记录数据的排查处理记录的文章就介绍到这了,更多相关mysql重复记录数据排查处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL无法存储Emoji表情问题的解决方法分析

    MySQL无法存储Emoji表情问题的解决方法分析

    这篇文章主要介绍了MySQL无法存储Emoji表情问题的解决方法,结合实例形式分析了存储Emoji表情报错的原因及相应的解决方法,需要的朋友可以参考下
    2018-07-07
  • MySQL之DATETIME与TIMESTAMP的时间精度问题

    MySQL之DATETIME与TIMESTAMP的时间精度问题

    这篇文章主要介绍了MySQL之DATETIME与TIMESTAMP的时间精度问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • MySQL Buffer Pool如何提高页的访问速度

    MySQL Buffer Pool如何提高页的访问速度

    本文主要介绍了MySQL Buffer Pool如何提高页的访问速度,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • MySQL普通索引和唯一索引的深入讲解

    MySQL普通索引和唯一索引的深入讲解

    这篇文章主要给大家介绍了关于MySQL普通索引和唯一索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • SQL update多表关联更新方法解读

    SQL update多表关联更新方法解读

    这篇文章主要介绍了SQL update 多表关联更新方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • MySQL5.6.22 绿色版 安装详细教程(图解)

    MySQL5.6.22 绿色版 安装详细教程(图解)

    本文通过图文并茂的形式给大家介绍了MySQL5.6.22 绿色版 安装详细教程,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • 详解MySQL如何交换两列值数据

    详解MySQL如何交换两列值数据

    最近遇到了需要将表里的两列值进行互换,原因是存库时值存放反了,在编码语言中,我们一般可以通过定义一个临时变量c,将b赋值给c,a赋值给b,c赋值给a就能实现a和b的值互换,那么,在mysql中,非储存过程的sql语句,没有定义变量的过程,如何实现呢,接下来由小编给大家介绍一下
    2024-01-01
  • Java将excel中的数据导入到mysql中

    Java将excel中的数据导入到mysql中

    这篇文章主要介绍了Java将excel中的数据导入到数据库,小编觉得挺不错的,现在分享给大家,需要的朋友可以参考借鉴
    2018-05-05
  • MySQL INSERT INTO SELECT时自增Id不连续问题及解决

    MySQL INSERT INTO SELECT时自增Id不连续问题及解决

    这篇文章主要介绍了INSERT INTO SELECT时自增Id不连续问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • windows7下启动mysql服务出现服务名无效的原因及解决方法

    windows7下启动mysql服务出现服务名无效的原因及解决方法

    这篇文章主要介绍了windows7下启动mysql服务出现服务名无效的原因及解决方法,需要的朋友可以参考下
    2014-06-06

最新评论