Oracle与MySQL的分页查询sql语句格式

Mysql 同时被 3 个专栏收录
15 篇文章 3 订阅
21 篇文章 4 订阅
35 篇文章 7 订阅

Oracle

Oracle使用rownum进行分页,rownum是从1开始的:

select * from 
    (select rownum as rn, a.* from table_name a where rownum <= pageIndex * pageSize)
    where rn > (pageIndex - 1) * pageSize

其中,pageIndex是页码,pageSize是每页的条数

MySQL

MySQL的limit语句 (select * from 表名称 limit m,n) 是很方便,但是对数据量很大的表不适合直接使用。参考:点击打开链接

综合考虑下,我们可以利用索引来进行高效地分页查询

方式一:把这一页的第一条数据的id查出来,然后按数量查询

select * from table_name 

    where id >= (select id from table_name limit (pageIndex-1) * pageSize, 1) 

    limit pageSize

方式二:把这一页所有的数据id查出来,然后从数据库中按照这些id进行查询

select a.* FROM table_name a 

join 

(select id from table_name limit (pageIndex-1) * pageSize, pagesize) b 

on a.id = b.id

更多内容,请关注公众号:程序员高手之路

在公众号回复:Oracle资源   即可免费获取Oracle视频教程!

  • 6
    点赞
  • 0
    评论
  • 11
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

前方一片光明

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值