您的位置:首页 > 数据库

数据库分页查询

2016-03-01 16:23 302 查看
oracle分页查询:

select *
from (select a.*, rownum rn
from (select *
from calendar_info
where uin = '136727'
order by createtime desc) a
where rownum <= endIndex)
where rn > startIndex


rowid和rownum的区别:

rowid和rownum都是虚列,但含义完全不同。rowid是物理地址,用于定位oracle中具体数据的物理存储位置,而rownum则是sql的输出结果排序。通俗的讲:rowid是相对不变的,rownum会变化,尤其是使用order by的时候。

rowid 用于定位数据表中某条数据的位置,是唯一的、也不会改变

rownum 表示查询某条记录在整个结果集中的位置, 同一条记录查询条件不同对应的 rownum 是不同的而 rowid 是不会变的

使用rowid和rownum组合实现分页查询

SELECT *
FROM (SELECT RID
FROM (SELECT R.RID, ROWNUM LINENUM
FROM (SELECT ROWID RID
FROM calendar_info
where uin = '136727'
order by createtime desc) R
WHERE ROWNUM <= endIndex)
WHERE LINENUM >= startIndex) T1,
calendar_info T2
WHERE T1.RID = T2.ROWID;


oracle查询结果集的前十条数据:

select *
from calendar_info
where seqno > (select max(seqno) - 10 from calendar_info);
select *
from (select * from calendar_info order by seqno desc)
where rownum < 10;


mysql实现分页查询:

select *
from (select * from calendar_info where uin = '136727') t limit startIndex,
pageSize
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: