資料庫分頁語句

2021-08-31 02:02:52 字數 1279 閱讀 1213

取出sql表中第31到40的記錄(以自動增長id為主鍵)

sql server方案1:

select top 10 * from t where id not in (select top 30 id from t order by id ) orde by id

sql server方案2:

select top 10 * from t where id in (select top 40 id from t order by id) order by id desc

mysql方案:select * from t order by id limit 30,10

oracle

方案:

select * from 

(select a.*, rownum rn 

from (select * from table_name) a 

where rownum <= 40

)where rn >= 21

1.分頁技術1

(直接利用sql

語句進行分頁,效率最高和最推薦的)

mysql:sql = "select * from articles limit " + (pageno-1)*pagesize + "," + pagesize;

oracle: sql = "select * from " +

"(select rownum r,* from " +

"(select * from articles order by postime desc)" +

"where rownum<= " + pageno*pagesize +") tmp " +

"where r>" + (pageno-1)*pagesize;

注釋:第7

行保證rownum

的順序是確定的,因為oracle

的索引會造成rownum

返回不同的值

時,rownum

按順序輸出,一旦有了order by

,rownum

不按順序輸出了,這說明rownum

是排序前的編號。如果對order by

從句中的字段建立了索引,那麼,rownum

也是按順序輸出的,因為這時候生成原始的查詢結果集時會參照索引表的順序來構建。

sqlserver:sql = "select top 10 * from id not id(select top " + (pageno-1)*pagesize + "id from articles)"

資料庫分頁語句

1 mysql select from tb user order by id asc limit 10 offset 10 size small color blue limit指定每頁大小,offset指定偏移量,在程式 中可以寫成這樣 select from tb user order by ...

JDBC 資料庫分頁語句

在編寫web應用程式等系統時,會涉及到與資料庫的互動,如果資料庫中資料量很大的話,一次檢索所有的記錄,會占用系統很大的資源,因此常常採用分頁語句 需要多少資料就只從資料庫中取多少條記錄。以下是 sqlserver,oracle 和mysql 的分頁語句 從資料庫表中的第 m條資料開始取 n條記錄 m...

常用資料庫分頁語句

select from cat limit select from cat limit 20000,100 從cat表中第20000條開始取出100條記錄,即記錄號為20000到20099的記錄 select from cat limit select from cat limit 100 從cat...