分页数据有重复的问题
2016-04-10 15:59
302 查看
前端时间 测试给了个bug 前端显示时第一页和第二页有重复的一条数据
研究之后发现还是数据库的一些细节问题 觉得值得记录一下
当时把控制台打印的log中的sql语句拿出来之后 在plsql中运行 发现也是有条数据重复 然后有一条数据没有显示 把分页语句去掉之后就没有再发生重复数据的问题。基本定位到是分页时引起的问题。
在网上查找了一下资料。基本上都是解释为一般有重复数据的情况是没有做order by的排序。但是此处用了update date做了order by的排序。一时比较费解。
和测试做了讨论 3次测试都出现了重复的情况 而且每次重复的数据不同 所以分别拿3次测试的数据做了比较 发现3组数据重复数据和未显示数据的update date都相同。这样就确定了原因
做分页的时候不要只拿有可能出现重复的字段做排序 此处增加了一个uddate time的排序之后 不再出现bug
之后碰到此问题
order by的时候最后在目标排序字段的基础上应该加上一个可以保证唯一性的字段对数据进行排序
研究之后发现还是数据库的一些细节问题 觉得值得记录一下
当时把控制台打印的log中的sql语句拿出来之后 在plsql中运行 发现也是有条数据重复 然后有一条数据没有显示 把分页语句去掉之后就没有再发生重复数据的问题。基本定位到是分页时引起的问题。
在网上查找了一下资料。基本上都是解释为一般有重复数据的情况是没有做order by的排序。但是此处用了update date做了order by的排序。一时比较费解。
和测试做了讨论 3次测试都出现了重复的情况 而且每次重复的数据不同 所以分别拿3次测试的数据做了比较 发现3组数据重复数据和未显示数据的update date都相同。这样就确定了原因
做分页的时候不要只拿有可能出现重复的字段做排序 此处增加了一个uddate time的排序之后 不再出现bug
之后碰到此问题
order by的时候最后在目标排序字段的基础上应该加上一个可以保证唯一性的字段对数据进行排序
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- more、less 和 most 的区别
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页