初学者必读:经典的数据库记录分页代码

作者:安娜 时间: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
  • asp之家 网络编程 m.aspxhome.com