菜要多喝水才會長大

資料庫

SQL – 分頁

by GDX on 十二月.09, 2009, under SQL, 心情日記, 資料庫

以前還沒有那麼熟SQL語法的時候
只會作將資料庫資料讀出來、寫入、更新等等基本的動作,以為這就是SQL的全部了
後來作的東西越來越多、看的越來越多,經驗也比以前豐富了
發現SQL真是博大精深,很多複雜的動作都可以在SQL裡完成
而不需要將資料讀出再交由程式作處理,也減少了程式的複雜度

例如最常用到的分頁,以前總想著把資料全部讀出來再用程式選取需要的資料
但這樣實在太浪費校能和記憶體了
資料量小倒是還好,當資料量一大,成千上萬筆的資料不可能一次選出
因此在此做了筆記

範例資料表名稱: a
範例資料表結構:
id: 主索引
data: 資料

利用以下語法即可達到不需程式控制的分頁技巧

SELECT TOP pSize * FROM [a]
WHERE [a].[id] NOT IN
(SELECT TOP pSize * pIndex [b].[id] FROM [a] AS [b] ORDER BY [b].[id])
ORDER BY [a].[id] DESC

pSize代表一頁的資料筆數
pIndex代表目前的頁面(從0開始)

Leave a Comment :, , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Archives

All entries, chronologically...