说一下mysql, oracle等常见数据库的分页实现方案


Posted in 面试题 onSeptember 29, 2012
1.Oracle:
select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum == min
2.SQL Server:
select top @pagesize * from tablename where id not in (select top @pagesize*(@page-1) id from tablename order by id) order by id

3.MySQL
select * from tablename limit position, counter

4.DB2
select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max

——————————————————————————————–
1.分页方案一:(利用Not In和SELECT TOP分页)效率次之
语句形式:
SELECT TOP 10 * FROM TestTable
WHERE(ID NOT IN (SELECT TOP 20 id FROM TestTable ORDERBY id)) ORDERBYID
SELECT TOP 页大小 * FROM TestTable
WHERE( ID NOT IN (SELECT TOP 每页大小-1*待查询页数-1 id FROM 表 ORDERBY id)) ORDERBYID
思路:先查询出待查询页之前的全部条数的id,查询ID不在这些ID中的指定数量条数

2.分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高
语句形式:
SELECT TOP 10 * FROM TestTable
WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP20 id FROM TestTable ORDERBYid)AS T))ORDERBY ID
SELECT TOP 页大小* FROM TestTable
WHERE(ID>(SELECT MAX(id) FROM(SELECT TOP 每页大小*待查询页数-1 id FROM 表 ORDERBY id)AS T)) ORDERBY ID
思路:先获得待查询页的之前全部条数id,获得它们当中最大的ID号,以此最大ID号为标志,查找比这个ID号大的指定条数

3.分页方案三:
SELECT TOP PageSize * FROM(SELECT TOP nPage*PageSize * from YOURTABLE order by id)as a order by id desc
SELECT TOP 每页条数 * FROM (SELECT TOP 待查询页*每页条数) * from YOURTABLE order by id)as a order by id desc
思路:先正排序查询出待查询页之前(包括当前页)的全部条数,然后将其倒排序,取指定条数

Tags in this post...

面试题 相关文章推荐
Collection和Collections的区别
May 02 面试题
一份Java笔试题
Feb 21 面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 面试题
简述网络文件系统NFS,并说明其作用
Oct 19 面试题
C#如何进行LDAP用户校验
Nov 21 面试题
下列程序在32位linux或unix中的结果是什么
Jan 26 面试题
介绍一下Linux文件的记录形式
Apr 18 面试题
linux面试题参考答案(10)
Oct 26 面试题
Linux内核产生并发的原因
Nov 08 面试题
在Ajax应用中信息是如何在浏览器和服务器之间传递的
May 31 面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
substr()函数中文版
2006/10/09 PHP
扩展你的 PHP 之入门篇
2006/12/04 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python单元测试框架unittest简明使用实例
2015/04/13 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
python 获取等间隔的数组实例
2019/07/04 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
大学生入党思想汇报
2014/01/14 职场文书
节水标语大全
2014/06/11 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
追悼词范文大全
2015/06/23 职场文书