前端时间 测试给了个bug 前端显示时第一页和第二页有重复的一条数据
研究之后发现还是数据库的一些细节问题 觉得值得记录一下
当时把控制台打印的log中的sql语句拿出来之后 在plsql中运行 发现也是有条数据重复 然后有一条数据没有显示 把分页语句去掉之后就没有再发生重复数据的问题。基本定位到是分页时引起的问题。
在网上查找了一下资料。基本上都是解释为一般有重复数据的情况是没有做order by的排序。但是此处用了update date做了order by的排序。一时比较费解。
和测试做了讨论 3次测试都出现了重复的情况 而且每次重复的数据不同 所以分别拿3次测试的数据做了比较 发现3组数据重复数据和未显示数据的update date都相同。这样就确定了原因
做分页的时候不要只拿有可能出现重复的字段做排序 此处增加了一个uddate time的排序之后 不再出现bug
之后碰到此问题
order by的时候最后在目标排序字段的基础上应该加上一个可以保证唯一性的字段对数据进行排序