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

面试题 相关文章推荐
新浪网技术部笔试题
Aug 26 面试题
如何强制垃圾回收
Oct 06 面试题
新东网科技Java笔试题
Jul 13 面试题
C,C++的几个面试题小集
Jul 13 面试题
介绍一下#error预处理
Sep 25 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
ddl,dml和dcl的含义
May 08 面试题
SQL注入攻击的种类有哪些
Dec 30 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
Sep 18 面试题
linux面试题参考答案(4)
Jan 28 面试题
编程输出如下图形
Nov 24 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
天游软件面试
Nov 23 #面试题
介绍一下内联、左联、右联
Dec 31 #面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
PHP开发负载均衡指南
2010/07/17 PHP
基于php权限分配的实现代码
2013/04/28 PHP
php格式化日期实例分析
2014/11/12 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
vue解决跨域问题(推荐)
2020/11/10 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
python 换位密码算法的实例详解
2017/07/19 Python
使用Python进行目录的对比方法
2018/11/01 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
自我鉴定写作要点
2014/01/17 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
入党函调证明材料
2014/12/24 职场文书
《藏戏》教学反思
2016/02/23 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏