欢迎光临
我们一直在努力

一切都因为分页-再谈分页-ASP教程,ASP应用

建站超值云服务器,限时71元/月

很久没有被分页困惑了,因为一直以来操作的表中数据量都不大,所以很偷懒地使用了纪录集的pagesize与absolutepage。这个的弊端就是一次性地把用到用不到的记录全读出来了,记录数一多就很慢。

解决的思路是,找到一种方法,只读出需要的记录~呵呵~

比较常见的是利用了in 操作符,例如

select top pagesize * from a where id not in (select top pagesize*pageno id from a where )

注意一下加红的那部分,select 语句中用到的是他们的值

同样的,数据不是很多的话还行,多了同样是不行的,因为in的效率不高嘛

思来想去,找到一个方法,利用了id(俺一直是把它设成自增的)的一个特性,

id是从小到大排的,其实只要找到当前页最小id应该大于多少,然后再用上top 操作符。

看看

select top pagesize * from a where id > minid

第一页的 minid 当然是 0,然后就可以得出第一页最大的id值,它正是第二页中id必须大于的值,类推~

当然,有一个问题,如果你想直接跳到指定页~~那就不好办了:(

跳到最后一页到还是很简单的,只要使用order by id desc

这个思想还是有个破绽呀,如果不按id排序的话,就会很麻烦,可以想到的解决方法是,将上面的做为子查询,外面再套一层查询~

如果看不明白的话,抱歉,那只说明俺的表达能力低虐~而已~

呵呵~所以不用放心上啦!



、)


赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一切都因为分页-再谈分页-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章