求一分页SQL语句,烦请高手帮帮忙?在线急等!

pyusksk503 2006-01-23 10:03:04
我现在要显示上万条记录,里面有很多图片,图片我已预载,但速度仍然很慢,所以我想在"分页"的时候只要每页只取出10记录集,由这10条记录组成一个rs,其实所说的分页是假,只不过通过点击"下一页"来执行不同的SQL语句从而来得到下面的10记录,这样其实,每次刷新该页面显示该页面的时候,只建立了一个10条的记录集显示在页面上,再释放连接,这样速度会很快,从而避免了以往通过建立一个含有几万条的记录集再来分页显示要快的多.
我说了这么多,你们明白我的意思了吗?还请各位高手帮帮忙,小弟不胜感激!
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pyusksk503 2006-01-25
  • 打赏
  • 举报
回复
楼上的你没有听懂我意思,ID不连续的时候,或者向上翻或者下翻的时候根本就行不通过的,现在我自己解决了,但呈现出现的效果还不明显,我个人认为用存储过程来解决问题或许能好一点,这也正是net_lover(孟子E章)所提醒了我.谢谢!
结贴了!
sujinlin 2006-01-24
  • 打赏
  • 举报
回复
其实原理就是使用两个TOP。

如:

此代码在MS SQL下通过
topic_endtime为最后回复时间,主建、降序,Clustered

Dim PageSizer,CurrentPage,Board_Id,End_Id

'// 这就是当前页码,可以随便你怎么跳
CurrentPage = Clng(Request("page"))

'// 每页显示PageSize条记录
PageSizer = 20

'// 分论坛的ID
Board_Id = Cint(Request("id"))

'// 就是靠这个做条件了
End_Id = (CurrentPage - 1) * PageSizer

sql = "Select top "&PageSizer&" * From [topic] where topic_boardid="&Board_Id&" and topic_endtime<(Select Min(topic_endtime) as topic_endtime From (Select top "&End_Id&" topic_endtime From [topic] where topic_boardid="&Board_Id&") as temp_topic)"


原理就是取出你要读取的记录的上面那些记录,然后就在这个集合里面用Min(topic_endtime),因为topic_endtime原来已经排序好了,所以取最小的topic_endtime,然后你要读取的记录的topic_endtime值都比这个topic_endtime要小,再top PageSizer就是你要取的记录了

补充:在第一页用top PageSizer

PS:在50万的记录,最后一页都是15ms,
测试机器:Duron 1G + 256 sdram
在服务器上最快是5ms

Power by 可洛(NB)
QQ:80291384
runtim@163.com
hanhongmin 2006-01-23
  • 打赏
  • 举报
回复
设置两个变量a,b
SQL当然从a搜索到b共十个....
下一页的职责就是a=a+10,b=b+10了
不知道行不行
孟子E章 2006-01-23
  • 打赏
  • 举报
回复
http://www.google.com/search?hl=zh-CN&q=asp+%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B+%E5%88%86%E9%A1%B5&lr=

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧