常見資料庫的分頁實現方案

2021-09-06 14:07:45 字數 3956 閱讀 3606

隨著資料庫的發展,如今的資料庫可以儲存大量的資料,記憶體也是越來越大,但是無論您的記憶體多大,記憶體總是顯得不夠用,這時就要涉及到分頁,下文中將為大家帶來詳細的資料庫分頁操作。

1.oracle:1

2

select*from(selectrow_.*, rownum rownum_from( query_sql ) row_

whererownum =<max)whererownum_ >=min

2.sql server:1

2

selecttop@pagesize *fromtablenamewhereidnotin

(selecttop@pagesize*(@page-1) idfromtablenameorderbyid)orderbyid

3.mysql1

select*fromtablename limit position, counter

4.db21

2

select*from(select*,rownumber()asrow_nextfromtablename)

whererow_nextbetweenminandmax

語句形式:

1

2

3

4

5

6

selecttop10 *fromtesttable

where

(idnotin(selecttop20  idfromtesttable  orderby  id))   orderbyid

selecttop頁大小 *fromtesttable

where( idnotin(selecttop每頁大小-1*待查詢頁數-1  idfrom

orderby  id)) orderbyid

思路:先查詢出待查詢頁之前的全部條數的id,查詢id不在這些id中的指定數量條數。

語句形式:

1

2

3

4

5

6

selecttop10 *fromtesttable

where(id>(selectmax(id)from(selecttop20 idfromtesttable orderbyid)

ast))orderby id

selecttop頁大小*fromtesttable

where(id>(selectmax(id)from(selecttop每頁大小*待查詢頁數-1  idfrom

orderby id)ast)) orderby id

思路:先獲得待查詢頁的之前全部條數id,獲得它們當中最大的id號,以此最大id號為標誌,查詢比這個id號大的指定條數。

1

2

3

4

selecttoppagesize *from

(selecttopnpage*pagesize *fromyourtableorderbyid)asaorderbyiddesc

selecttop每頁條數 *from

(selecttop待查詢頁*每頁條數) *fromyourtableorderbyid)asaorderbyiddesc

思路:先正排序查詢出待查詢頁之前(包括當前頁)的全部條數,然後將其倒排序,取指定條數。

常見資料庫分頁實現方案

隨著資料庫的發展,如今的資料庫可以儲存大量的資料,記憶體也是越來越大,但是無論您的記憶體多大,記憶體總是顯得不夠用,這時就要涉及到分頁,下文中將為大家帶來詳細的資料庫分頁操作 1.oracle select from select row rownum rownum from query sql r...

常見資料庫分頁實現方案

隨著資料庫的發展,如今的資料庫可以儲存大量的資料,記憶體也是越來越大,但是無論您的記憶體多大,記憶體總是顯得不夠用,這時就要涉及到分頁,下文中將為大家帶來詳細的資料庫分頁操作 1.oracle sql select from select row rownum rownum from query s...

常見資料庫的分頁實現方案

隨著資料庫的發展,如今的資料庫可以儲存大量的資料,記憶體也是越來越大,但是無論您的記憶體多大,記憶體總是顯得不夠用,這時就要涉及到分頁,下文中將為大家帶來詳細的資料庫分頁操作。1.oracle 1 2 select from selectrow rownum rownum from query sq...