資料庫的分頁查詢

2021-09-26 08:41:42 字數 1511 閱讀 1873

在做專案中,乙個頁面顯示不下資料,難免會用到分頁顯示,資料庫中也一樣,需要對查詢的結果進行分頁顯示,那麼不同的資料庫應該怎麼實現分頁呢?我們簡單**一下如何實現分頁。

mysql中的分頁

mysql中支援limit關鍵字,因此可使用limit進行分頁, 查詢第1條到第10條記錄,如下圖:

select * from categorysecond limit 10
注:ms sql與mysql類似,這裡不做詳細介紹。

oracle分頁

oracle中不支援limit語法,但是oracle中可為每個表中的記錄預設生成乙個rownum(行號)、rowid(行id),我們稱之為偽列,同理可借助rownum來進行分頁。

rowid和rownum示例:

分頁查詢思路:

可用3層查詢,由內到外,內層查詢為需要查詢的語句,中層查詢需要查詢內層的所有資料加上rownum,外層需查出中層內的所有資料,並且條件中指定中層查詢的rownum的範圍,即可完成分頁查詢。

查詢姓名為「李五零」並按照income_sum 降序的第1條到第10條的資料:

select * from ( 

select rownum rn ,b.* from (

select * from income_allot_det where pro_manager_name = '李五零' order by income_sum desc

select * from  income_allot_det where  rownum >1 and rownum <10 order by income_sum desc
結論:

首先我們解釋一下rownum的特點

1.rownum在直接使用大於或小於時,是查不出任何資料的;

2. rownum是oracle系統順序分配的行的編號,它會先根據where中的條件查詢,對查詢後的結果重新分配行號,因此rownum總是從1開始,這樣就會造成查詢結果不準確。

為了避免這種情況,只能將rownum作為需要查詢結果的某一列(中層查詢),進行巢狀查詢,保證需要分頁表中的rownum不會隨意改變。

資料庫查詢分頁。

csdn上推薦的,轉過來的。呵呵!表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 頁記錄數量 from 表名 where id not in select top 每頁行數 頁數 1 id fr...

資料庫分頁查詢

資料庫分頁查詢 在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查...

資料庫分頁查詢

1 mysql select from demo where 1 1 limit 2,3limit是用來分頁的,第乙個引數是行號,第二個引數是說有多少行 2 oracle 第一種select id,field name,from table name where id in select id fr...