sql分页

对于一些存在大量数据的大型网站来说,分页显示的确令人头痛,如果处理不当,将会带来服务器以及资源的浪费。

当然不同的人会有不同的解决方案,不过我就经常用到分页查询SQL语句去做,每页显示多少条就去数据库提取多少条。这样不但节省资源的浪费,也可以减轻数据库的负担。

思路以及实现方法,适用于SQL等一些常用数据库:

m:代表总记录数(m>0)
n:代表每页显示N条记录(n>0)
page:代表当前页(page从0开始)

求总页数:(m%n)==0?(m/n):(m/n+1);

SQL语句的实现:

select top n * from 表名 where id not in(select top (n*page) id from 表名 order by 排序) order by 排序

eg:

select top 5 * from Messages where MessageId not in(select top (5*2) MessageId
from Messages order by MessageDate desc) order by MessageDate desc

这样就实现了分页处理

原文地址:https://www.cnblogs.com/zhan-shuai/p/4990965.html