说一下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...

面试题 相关文章推荐
mysql_pconnect()和mysql_connect()有什么区别
May 25 面试题
Java和Javasciprt的区别
Sep 02 面试题
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
Jan 07 面试题
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
Sep 11 面试题
c++工程师面试问题
Aug 04 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
May 13 面试题
SQL Server面试题
Oct 17 面试题
试述DBMS的主要功能
Nov 13 面试题
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
Sep 17 面试题
什么是Rollback Segment
Apr 22 面试题
开放系统互连参考模型
Jun 29 面试题
介绍一下Mysql的存储引擎
Feb 12 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
英语文学专业学生的自我评价
2013/10/31 职场文书
销售员岗位职责范本
2014/02/03 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
骨干教师考核评语
2014/12/31 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
创业计划书之酒吧
2019/12/02 职场文书