初学者必读:经典的数据库记录分页代码
作者:安娜 时间:2009-01-08 15:27:00
方案:
◆1、SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID NOT IN
(SELECT TOP (PAGE-1)* PAGESIZE NEWSID FROM NEWSINFO
WHERE Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC)
AND Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC
其中:PAGE表示当前页数,PAGESIZE表示页的大小;这里利用了NOT IN,不复合SARG,但总比一次读取全部的记录要好的多。
◆2、符合 SARG的代码
针对本人的实例还有一个更好的方案:因为NEWSID字段是自增字段,对于NOT IN 语句进行如下的改造,并不影响结果。但速度提高了很多
SELECT TOP PAGESIZE NEWSTITLE
FORM NEWSINFO WHERE NEWSID <
(SELECT MIN(NEWSID) FROM (SELECT TOP (PAGE-1) * PAGESIZE NEWSID FROM NEWSINFO WHERE Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC) AS TB)AND Auditing=1 and NEWSBREED='企业新闻' order by NEWSID DESC
说明
对于在多处使用分页功能的web 应用程序,把SQL语句改为存储过程将会更好。
标签:
0
投稿
猜你喜欢
fso文件按照文件名字母排序
2008-03-09 15:25:00
如何解决“cint和clng的溢出出错”问题?
2009-12-03 20:21:00
YUI学习笔记(1)
2009-01-12 18:06:00
技巧/诀窍:在ASP.NET中重写URL
2007-09-23 12:21:00
使用HTML和MSXML6.0 创建一个超轻量级XPATH测试程序
2009-04-24 12:38:00
在JScript中使用ADODB.Stream判断文件编码
2008-06-08 13:03:00
asp如何建立MYSQL数据库的连接?
2009-11-26 20:30:00
整理各种js按比例缩放图片方法
2007-09-27 20:01:00
ASP 写的判断 Money 各个位值的函数
2008-04-13 06:36:00
JavaScript 数组的 uniq 方法
2007-12-07 18:28:00
IIS出现Active Server Pages错误“ASP 0201”的修复工具
2009-05-25 18:06:00
javaScript通用数据类型校验函数
2009-07-06 12:49:00
Mysql入门系列:MySQL数据目录的位置
2008-11-24 12:59:00
如何让新页面在新窗口打开?
2009-04-12 19:41:00
《写给大家看的设计书》阅读笔记之重复原则
2009-07-12 15:36:00
分布式DBA:SQL存储过程知识总结
2009-02-24 17:17:00
sqlserver获取当前日期的最大时间值
2011-09-30 11:44:50
交互设计实用指南系列(11)—减少记忆负担
2010-03-29 13:12:00
mysql myisam优化设置
2010-03-13 16:59:00
动态加载JavaScript的小实践
2009-11-12 12:38:00