通知 网站从因情语写改为晴雨,这个网站的模板也从calmlog_ex改为 whimurmur

查询后经过后台处理的数据的分页显示

3998人浏览 / 0人评论 / | 作者:因情语写  | 分类: 数据库  | 标签: 数据库  | 

作者:因情语写

链接:https://www.proprogrammar.com/article/47

声明:请尊重原作者的劳动,如需转载请注明出处


       项目中遇到一个需求,要对一个查询到的数据结果进行分页显示,一开始以为只是简单的进行分页,后来一看代码,发现在数据查出来以后会经过后台处理,并不是查询出多少条数据就会显示多少条数据,这样分页就不是根据查出的记录进行分页。
  所以我就看了下分页的依据,然后根据这个分页的依据,写语句时通过这个依据查出这个依据的前多少条记录,然后与原本的查询结果进行左外连接,连接条件是这些分页的依据,从而一次性的查询出了结果,这些结果在后台经过处理后,因为这些结果都是通过某一页的分页依据查出来的,所以展示后正好会是那一页的数据。

      下面附上代码

       然后到前台页面就会发现展示的结果数并不是查出的记录数,这时,我发现前台的展示的记录数实际是下面的内容控制的。

       一个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,这样就查出了每一页的数据,修改后的代码如下

       总结一下,这种情况应该很常见,就是从数据库查出一些记录,需要分页展示,但是这些记录并不是直接一条条展示在页面上,而是要经过一系列处理,展示的数据并不是查出的数据,这时我们可以观察一下展示每一条数据的依据,然后用原来的查询条件对这些依据进行分页,将原来的查询结果与依据的分页结果进行左外连接,条件就是这些分页依据,这样查出的结果就是那一页要用到的结果,再对这些结果进行处理,到前台后正好是要展示的那一页。


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!
广告位-帮帮忙点下广告