标签:com 数据库 image 开始 查询 显示 处理 遇到 页面
项目中遇到一个需求,要对一个查询到的数据结果进行分页显示,一开始以为只是简单的进行分页,后来一看代码,发现在数据查出来以后会经过后台处理,并不是查询出多少条数据就会显示多少条数据,这样分页就不是根据查出的记录进行分页。
所以我就看了下分页的依据,然后根据这个分页的依据,写语句时通过这个依据查出这个依据的前多少条记录,然后与原本的查询结果进行左外连接,连接条件是这些分页的依据,从而一次性的查询出了结果,这些结果在后台经过处理后,因为这些结果都是通过某一页的分页依据查出来的,所以展示后正好会是那一页的数据。
下面附上代码
然后到前台页面就会发现展示的结果数并不是查出的记录数,这时,我发现前台的展示的记录数实际是下面的内容控制的。
一个Set,可能有两种情况,下面要怎么处理呢,在sql中用distinct,后面跟APPLIER_DEPT_CODE,CONS_DEPT_CODE,SPECAIL_CONS_ITEM_CODE或者APPLIER_DEPT_CODE,CONS_DEPT_CODE,然后查询条件和与原先的查询条件相同,这样就查出了前台页面所有展示的记录数,再对distinct的结果进行分页,就得出了每一页要展示的记录,与原先的查询做左外连接,条件就是APPLIER_DEPT_CODE,CONS_DEPT_CODE或者APPLIER_DEPT_CODE,CONS_DEPT_CODE,SPECAIL_CONS_ITEM_CODE,这样就查出了每一页的数据,修改后的代码如下
总结一下,这种情况应该很常见,就是从数据库查出一些记录,需要分页展示,但是这些记录并不是直接一条条展示在页面上,而是要经过一系列处理,展示的数据并不是查出的数据,这时我们可以观察一下展示每一条数据的依据,然后用原来的查询条件对这些依据进行分页,将原来的查询结果与依据的分页结果进行左外连接,条件就是这些分页依据,这样查出的结果就是那一页要用到的结果,再对这些结果进行处理,到前台后正好是要展示的那一页。
标签:com 数据库 image 开始 查询 显示 处理 遇到 页面
原文地址:https://www.cnblogs.com/liunianfeiyu/p/9542780.html