oracle分页查询:
1 select * 2 from (select a.*, rownum rn 3 from (select * 4 from calendar_info 5 where uin = '136727' 6 order by createtime desc) a 7 where rownum <= endIndex) 8 where rn > startIndex
rowid和rownum的区别:
rowid和rownum都是虚列,但含义完全不同。rowid是物理地址,用于定位oracle中具体数据的物理存储位置,而rownum则是sql的输出结果排序。通俗的讲:rowid是相对不变的,rownum会变化,尤其是使用order by的时候。
rowid 用于定位数据表中某条数据的位置,是唯一的、也不会改变
rownum 表示查询某条记录在整个结果集中的位置, 同一条记录查询条件不同对应的 rownum 是不同的而 rowid 是不会变的
使用rowid和rownum组合实现分页查询
1 SELECT * 2 FROM (SELECT RID 3 FROM (SELECT R.RID, ROWNUM LINENUM 4 FROM (SELECT ROWID RID 5 FROM calendar_info 6 where uin = '136727' 7 order by createtime desc) R 8 WHERE ROWNUM <= endIndex) 9 WHERE LINENUM >= startIndex) T1, 10 calendar_info T2 11 WHERE T1.RID = T2.ROWID;
oracle查询结果集的前十条数据:
1 select * 2 from calendar_info 3 where seqno > (select max(seqno) - 10 from calendar_info); 4 select * 5 from (select * from calendar_info order by seqno desc) 6 where rownum < 10;
mysql实现分页查询:
1 select * 2 from (select * from calendar_info where uin = '136727') t limit startIndex, 3 pageSize