交友约会| 杂志期刊| 小说| 论坛| 电影下载| 两性知识| 电脑知识| 汽车| 旅游| 收藏

利用标准SQL语句实现查询记录分页

来源:小虫网络 作者:佚名 出处:综艺读书 2007-06-27 进入讨论组
关 键 词:数据库  服务器  

在绝大多数的应用中,返回大量的符合条件的记录是司空见惯的,最典型的莫过于搜索了。在搜索的应用中,用户给出搜索条件,服务器查出符合条件的记录。但往往搜索会返回大量的数据记录,如果在网页中,往往是通过分页的方式来实现,页面提供诸如上一页,下一页等等按钮来实现分页。

现在主要有以下几中方式来实现分页:

1.EJB的Find方法

2.在显示第一页前将所有的记录放在collection对象中,后续的各页都在内存中取。

3.每一页都到数据库作一次重复的查询,然后将符合条件的记录显示出来。

4.保存前几页的搜索结果在内存中(经常使用到的),后续的记录(这些数据是多数用户都没有耐心看的)再通过连数据库取得。

5.其他各种cache机制。

我们可以根据实际情况来选择适合自己的方法,我给大家介绍一个通过标准的SQL语句来得到符合条件的数据。如从第10到20条的符合条件(where语句中的)的记录。通过这种方法取得记录有一个必要条件,必须有一个能够标识记录顺序的字段,如id,time等等。下面我为大家演示一个例子:

查询t_table表中所有记录第10到20条,按id排序。

SQL语句为:

SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 

WHERE t2.id < t1.id ) > = 10 AND (SELECT count(*)

FROM t_table t2 WHERE t2.id < t1.id ) < 20

又如查询t_table表中key='123'第10到20条的记录,按id排序。

SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 

WHERE t2.id < t1.id AND t2.key = '123') > = 10

AND (SELECT count(*) FROM t_table t2

WHERE t2.id < t1.id AND t2.key = '123') < 20

AND t1.key = '123'

当然条件中的id可以换为任何能标识记录顺序的字段。

进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
综艺读书宗旨
相关专题
热点标签: 数据库  服务器  
最新技术文档
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
Web 全站
综艺电脑频道编辑信箱  告诉我们您想看的专题或文章

友情互链 | 收藏本站 | 联系我们 | 在线留言 | 京ICP备08008424号|