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

Oracle

Oracle使用rownum进行分页:

SELECT *
  FROM (SELECT a.*, ROWNUM rn
          FROM (SELECT * FROM table_name) a
         WHERE ROWNUM <= pageIndex * pageSize)
 WHERE rn > (pageIndex - 1) * pageSize

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

MySQL

MySQL的limit语句是很方便,但是对数据量很大的表不适合直接使用。参考:点击打开链接

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

SELECT * FROM table_name 

    WHERE id >= (SELECT id from table_name limit (pageIndex-1) * pageSize, 1) 

    limit pageSize

SELECT a.* FROM table_name a 

JOIN 

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

ON a.id = b.id

猜你喜欢

转载自blog.csdn.net/qq_26230421/article/details/79547989