分页显示(sqlserver,mysql,oracle)
发布时间:2020-12-12 15:40:09 所属栏目:MsSql教程 来源:网络整理
导读:@pagesize*page表示:分页大
@pagesize*page表示:分页大小×页数 一.使用mysql控制: select * from user order by Host limit m,n ? 结果返回的是第m+1行到第n行的数据集。 select * from user order by Host limit 1,5 ?返回的是第2行到第5行的数据集 1. SELECT TOP @pagesize * FROM tableName WHERE id NOT IN ( SELECT TOP @pagesize*(@page-1) id FROM tableName ORDER BY id ) ORDER BY id 2. SELECT * FROM ( SELECT TOP @pagesize * from ( SELECT TOP @pagesize*@page * FROM table1 ORDER BY id ) a ORDER BY id DESC ) b ORDER BY id ? ????? 可以发现sort的字段建立了index的条件下,第1个方法快很多,特别是查到后面页数的时候.原因就在于第2个方法中,第一次做了select 后,再做自查询时,index已经没有了.sort就会非常影响性能了 ? 三.使用oracle?? ? SELECT * FROM ( SELECT A.*,ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= @pagesize*page ) WHERE RN >= @pagesize*(page-1) ??? 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
原文: ??????? 1.http://blog.163.com/li_ming025@126/blog/static/3691193820087753952460/ ??????? 2.http://i.mop.com/fdxq520/blog/2007/06/06/4319491.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |