欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mysql数据库只有一条数据,但是界面查询出来有多个数据

程序员文章站 2022-04-09 23:12:57
...

简单的功能自己也没有注意测,提交给测试,第二天就发生产了,已经一周过去了,测试今天回归才发现,在点击页签是发现两条数据相同,通过条件帅选,只选择一条数据,问我是不是点击查询的时候 是否做过处理,我不确定重新看下代码,在sit环境也亲自测了下,没有做处理。

发现问题

一:拿着查询条件到数据库去查,数据库是一条数据,但是界面查询出来两条数据

二:跟测试说大概是前端分页插件的问题,sql不会有问题 (自信还是有的)

分析问题:

      1:先排查服务端给前端数据是否就有重复

       2:服务端数据没有问题,则应该是前端页面展示问题

解决问题

     1:点击第一页的时候打断点找到sql,把sql拎出来到mysql工具中执行,同样的拿出来第二页,第三页,第四页,第五页   

     2:发现第二页和第三页还有后面的几页都包含前面查出来的数据,查出的数据就有重复,那就看下是不是sql有问题

  SELECT
                id,
                catalogue1_name as catalogue1Name,
                catalogue1_code as catalogue1Code,
                catalogue2_name as catalogue2Name,
                catalogue2_code as catalogue2Code,
                level4_group_name as level4GroupName,
                level4_group_code as level4GroupCode,
                create_time as createTime,
                update_time as updateTime
            FROM
                tn_test
            WHERE
                1=1
            <#if catalogue1Name?exists && catalogue1Name!="">AND catalogue1_name like "%":catalogue1Name"%" </#if>
            <#if catalogue2Name?exists && catalogue2Name!="">AND catalogue2_name like "%":catalogue2Name"%" </#if>
            <#if level4GroupCode?exists && level4GroupCode!="">AND level4_group_code= :level4GroupCode </#if>
            <#if level4GroupName?exists && level4GroupName!="">AND level4_group_name like "%":level4GroupName"%" </#if>
            order by create_time desc
            limit :offset, :size

  3:看sql没有感觉没有啥问题

  4:再看看数据库中的数据,创建时间,看看数据,根据创建时间排序,因为时间是一样的,每次调用经过排序后的数据都是不一样的,所有问题估计就出在时间上

Mysql数据库只有一条数据,但是界面查询出来有多个数据

因为id是自增的,所以这个地方sql的排序需要修改,修改如下:

 order by create_time desc,id desc

验证问题

1:sql修改后,启动本地跑下看看数据没有重复的了

2:发布到sit环境和pre环境,让测试再次验证 ok。

相关标签: mysql