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

简单的功能自己也没有注意测,提交给测试,第二天就发生产了,已经一周过去了,测试今天回归才发现,在点击页签是发现两条数据相同,通过条件帅选,只选择一条数据,问我是不是点击查询的时候 是否做过处理,我不确定重新看下代码,在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 catalogue2Name?exists && catalogue2Name!="">AND catalogue2_name like "%":catalogue2Name"%" 
            <#if level4GroupCode?exists && level4GroupCode!="">AND level4_group_code= :level4GroupCode 
            <#if level4GroupName?exists && level4GroupName!="">AND level4_group_name like "%":level4GroupName"%" 
            order by create_time desc
            limit :offset, :size

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

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

Mysql数据库只有一条数据,但是界面查询出来有多个数据_第1张图片

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

 order by create_time desc,id desc

验证问题

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

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

你可能感兴趣的:(mysql)