MySql,Sqlserver,Oracle数据的分页语句

在实际项目中分页是常见的不能再说了,这里我总结了MySql,SqlServer,Oracle这三个数据库的sql分页语句

在这三个数据库中,个人觉得MySql的分页语句是最简单的,只用一个limit关键字就能完成

MySql数据库:

select  * from test limit 5,5;

test:表名

第一个参数5:从表中的第几行开始查,从0开始数

第二个参数5:查询出多少条记录

在项目中运用时,如果一个页面指定了显示多少条记录,通常第二个参数不会改变,都是该变的第一个参数

计算每页的公式:这里都是每页显示5条记录

第一页:(1-1)*5

第二页:(2-1)*5

第三页:(3-1)*5

第N页:(n-1)*5

公式:

开始的行数=(当前页-1)*每页显示的行数

所以最后在代码中的sql语句可以写为:

int pageSize=5;//每页显示行数

int pageNo=4;//当前页

int num=(pageNo-1)*pageSize;//开始查找的行

select * from test limit num,pageSize;

我了解的MySql数据的分页语句就只有这一种了


在SqlServer数据库中目前我了解的sql分页语句有两种

第一种:

select top(5) * from test 
	where id not in(
		select top((2-1)*5) id from test
	)

第二种:

select * from(
	select ROW_NUMBER() Over(order by id) as rownum,* from test
	) t 
where rownum between (2-1)*5+1 and 2*5


在Oracle数据库中我了解的一只有两种:

第一种:

select * from (
       select t.*,rownum rn from emp t 
       ) t1 
where rn>(2-1)*3 and rn<=2*3

也可以使用between

select * from (
       select t.*,rownum rn from emp t
       ) 
where rn between (2-1)*3+1 and 2*3

第二种:

select * from (
       select t.*,rownum rn from (
              select * from emp
       )t where rownum<=2*3
) where rn>(2-1)*3

这两种比较起来,个人认为第一种查询相对比较快,因为第一种只查询了两次,而第二种查询的三次

至于怎样使用,看个人比较适合哪一种了





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小老虎Love

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值