mysql与oracle的分页差异

mysql分页查询当前表中默认前10条

select * from user limit 0,10

这句话的意思是说从表的第一行,也就是相当于java中list的0号位置,数到第9号位置,总共10条记录

select * from user limit 10,10

意思是从第10号位置,向后继续数10条,此时应该是19号位置,依次类推传递n页应该这么写

select * from user limit (n-1)*10,10

其实就是第一页我从0开始,往后查询10条,接着第二页我从10号位置再查10条;

oracle中查询分页查询当前表按照id倒叙取前10条

oracle分页查询与mysql有几点差异,mysql是先排序在分页,而oracle一般是按照默认顺序,其实也不是,有点复杂,因为oracle的分页是嵌套子查询,所以他的排序取决于子查询的排序方式。当然你不排序也就没必要嵌套子查询了

SELECT
	rownum,
	t1.* 
FROM
	( SELECT t.* FROM C_USER t ORDER BY id DESC ) t1
WHERE rownum<=10

子查询根据id倒叙排序,当做子表t1,然后使用rownum的oracle伪列给字表t1从上到下编号,然后取前到编号为10的这几行,由于rownum从1开始,所以<10实际只有9条,<=10才是根据id倒叙的前10条记录,而且rownum只能取< ,<=,反之取不到值。

oracle按照表中默认顺序取表中任意页内容,分页大小为10

SELECT * from (SELECT rownum as rn, t.* from c_user t ) WHERE rn > (n-1)*10 and rn <= n*10;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值