各关系型数据分页数据 Sql查询

发布时间 2023-07-10 14:49:24作者: 万万没想到啊i

分页数据获取 前端传入 page 当前页码 size 当前页容量(一页多少条数据)

  • Mysql (数据从0开始)
SELECT * FROM table
LIMIT 结束行(下标不包括本身、取多少条数据) OFFSET  起始行数据
##即
SELECT * FROM table
LIMIT  size OFFSET (page-1)*size
##或
SELECT * FROM table
LIMIT (page-1)*size,size

##如   获取10条数据 从0开始取10条数据 即 0到9
SELECT * FROM table
LIMIT 10(下标不包括10、取10条数据) OFFSET 0
##或者
select * from table LIMIT 0,10

  • Orcale (数据从1开始)
select * from ( 
   select *,rownum as rw from table where rownum  <= 结束行数据 
   ) where rw >= 开始行数据 ;
##即
select * from ( 
     select *,rownum as rw from table where rownum  <= size*page
   ) where rw >= size*(page-1)+1 ;
##如  取出从0到5的数据
select * from (
		select * , rownum  from table where rownum <=5
)where rownum>=0
  • Sql Server (数据从1开始)
SELECT u.* FROM
   (
     SELECT t.*, ROW_NUMBER() OVER (ORDER BY t.字段 DESC) as rownum FROM
       (  SELECT  * from table  ) as t
   )  AS u 
WHERE u.rowNum >= 起始行数 AND u.rowNum <= 结束行数据;

##即
SELECT u.* FROM
   (
     SELECT t.*, ROW_NUMBER() OVER (ORDER BY t.字段 DESC) as rownum FROM
       (  SELECT  * from table  ) as t
   )  AS u 
WHERE u.rowNum >= size*(page-1)+1 AND u.rowNum <= size*page;