文档章节

MySQL和Oracle分页查询实现方式

蔡佳娃
 蔡佳娃
发布于 2017/08/07 23:56
字数 553
阅读 269
收藏 3

MySQL分页查询

    MySQL数据库实现分页比较简单,提供了limit函数,一般只需要直接写到sql后面既可以了。

    limit子句可以用来限制有select语句返回来的数据数量,它有一个或者两个参数,如果给出两个参数,第一个参数指定返回的第一行所有的数据中的位置,从0开始,第二个参数指定最多返回的行数。如:

#返回前10行
select * from table where ... limit 10;

#返回前10行
select * from table where ... limit 0, 10;

#返回第11-30行
select * from table where ... limit 10, 20;

Oracle分页查询

    在Oracle中没有limit关键字,但是有rownum字段,rownum是一个伪列,是Oracle系统自动为查询返回结果的每行分配的编号,第一行为1,第二行为2,以此类推...

    众所周知,rownum只适用于小于或者小于等于,如果进行等于判断,那么只能等于1,不能进行大于的比较。这是因为rownum的返回值总是从1开始,不管当前的记录是否满足查询结果,rownum的返回值都是1,如果这条记录最终满足所有的条件,那么rownum会递加,下一条记录的rownum就回返回2,否则下一条记录的rownum仍然返回1。明白了这个,就容易理解当rownum大于某个值或者等于某个不为1的值是无法返回结果的,因为对于每条记录的rownum都是1,而rownum为1不满足查询的结果,所以下一条记录的rownum不会递增,仍然是1,所以所有的记录都不满足条件。

    写法一:

select * from
    (select A.*, ROWNUM RN from (select * from table) A where ROWNUM <= 30) 
where RN >= 21;

    最内层的查询select * from table表示不进行翻页的原始查询语句。ROWNUM<=40和RN>=21控制分页查询每页的范围。

    写法二:

select * from
(select e.*, ROWNUM r from (select * from table) e) e1
where e1.r > 21 and e1.r <= 40;

 

© 著作权归作者所有

共有 人打赏支持
蔡佳娃
粉丝 16
博文 54
码字总数 48865
作品 0
海淀
程序员
私信 提问
Oracle、MySql、SQLServer 数据分页查询

Oracle、MySql、SQLServer 数据分页查询 最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一)、 mysql的分页查询 mysql的分页查...

什么是程序员
2016/11/13
6
0
主流数据库分页查询介绍

1 背景概述 由于在项目中需要在页面上显示数量非常多的数据, 在进行数据库查询时首先会把所有的数据都查询出来,然后在进行显示,这时候分页查询的操作就必不可少了,本文介绍Mysql、Oracl...

数通畅联
2015/11/26
185
0
mysql 和 oracle 实现分页原生 sql

比如使用 Java 开发的项目中操作数据库,那么现在和数据库交互的工作现在都用框架,比如 MyBatis 或者 Hibernate 但是他们不还是通过 JDBC 的方式访问数据库,那么我们就有必要根据数据库类型...

举个_栗子
2018/07/16
0
0
Oracle和MySQL数据库的比较

本次使用Oracle11g和MySQL5.0作比较,目的是为了整理和巩固所学的数据库知识,也为了加深印象.(本人菜鸟,请大神们多多指教) 不同点 所占内存不同 Oracle11g在官网上下载的时候显示大约2g大小的...

青椒炒盖饭
2018/12/19
0
0
Mybatis Generator Plus

1.介绍: MyBatis generator plus 基于mybatis-generator-core v.1.3.2 扩展,增加如下主要特性: 生成支持Oracle、Mysql、Sqlserver分页查询的代码: //分页查询demoOperateLogExample relatio...

handosme_w
2017/01/20
0
2

没有更多内容

加载失败,请刷新页面

加载更多

Temp-Memo

SQL High CPU troubleshooting checklist SELECT TOP 50[Avg. MultiCore/CPU time(sec)] = qs.total_worker_time / 1000000 / qs.execution_count,[Total MultiCore/CPU time(sec)] = ......

Goopand
8分钟前
1
0
dotConnect for Oracle入门指南(七):存储过程

【下载dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技术上,为基于Oracle数据库的应用程序提供完整的解决方案。它为设计应用程序结构带来了新的...

电池盒
10分钟前
1
0
如何使用阿里云ARMS轻松重现用户浏览器问题

客户投诉不断,本地却无法重现? 页面加载较慢是用户经常会反馈的问题,也是前端非常关注的问题之一。但定位、排查解决这类问题就通常会花费非常多的时间,主要原因如下: 页面是在用户端的浏...

阿里云官方博客
13分钟前
1
0
因资源用尽导致服务宕机

1. 事故的发生 服务调用场景和发生的事件如下图所示,红色表示服务不可用. 服务A和服务B都是内部服务,服务C_*为不同运营商提供的服务,遵循一样的协议。 某一天,突然发现所有服务A调用服务...

北风刮的不认真了
18分钟前
2
0
锤子科技"临死前"被"接盘" ,内部人士爆料已改签今日头条母公司

就在昨天,据据锤子科技内部人士透露,部分锤子科技员工在昨天已经接到了相关的临时通知,要求改签劳动合同至今日头条的母公司——字节跳动。至于这是锤子科技真正再度复活还是借尸还魂都不重...

终端研发部
27分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部