mysql 的order by

        这段时间在一直在完善一个网站系统,测试人员也帮我在进行着测试,测试过程中,他们发现了一个奇怪的问题,就是,在一个会员列表页,有几份资料重复显示了,也就是,在第一页显示了,另外在其它分页也显示这些资料

        我马上去查看,果然如此,所以就立刻怀疑是不是一份资料写了两次,马上上数据库找,结果发现,确实只有一份资料,那就奇怪,没办法,只能自己查找出现问题的其它方面,因为是在网上发现这个问题的,所以我就想,如果网上出现,那本地应该也有吧,于是自己到本地想找出同样的问题,但始终没有发现同样的问题,我本地有两百多页的数据,不可能一页页的去查找,于是写了一个脚本,通过把每页的记录都记录在一个文本文件中,然后翻页时,查找当前页,是否已经存在于那个文本中,如果存在,那很可能就是程序的问题了,但最终,还是没发现重复的问题.

        后来又怀疑到缓存的问题了,因为我们把当前页面的SQL语句以及如总数等等给缓存了,但后来查找也不是,难道是分页,通过不断的分析发现也不是,没办法,把第一页的SQL与那个重复资料所在页的SQL打印出来,在PHPMYADMIN中直接运行,获得结果再分析,果然,发现了在第一个SQL与第二个SQL发现了重复的记录,这就证明了,程序逻辑上是没问题了,但是什么问题呢,还是不知道,只有慢慢分析,最后发现,这条SQL上有一个排序条件就是会员提交资料的时间,在第一个SQL搜索出来的记录数中与第二个SQL搜索出来的重复的几条记录的提交时间,一模一样,也就是说他们是在同一秒提交(这些数据是我们为了测试,从别的数据库中直接导入进来的,所以造成了某些数据提交时间存在相同),难道是这个排序条件的问题,于是就想,这是不是MYSQL本身在运行这些SQL时,遇到了排序条件相同,而又需要分页时,根本就不知道该取哪些资料(因为他们的提交时间一样,不知道该怎样排序,哪个该排前面哪个该排后面),而导致最终把重复的资料取出来了?于是我们把所有的提交时间都加上了一个随机数,致使所有的资料的提交时间改成不同的了,再看分页结果,确实是不同了,看来这就真是MYSQL排序本身的问题了,遇到结果中有很多记录的排序字段值是一样,而又需要分页时,不知道该怎样取数据了,不知道这算不算一个小BUG.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值