2009-06-11 64 views
0

我有一個INVENTORY表。裏面有很多物品。當我查詢它時,我只想每次檢索50個項目,並且如果用戶請求並繼續重複此過程直到記錄結束,則繼續獲得下一個50項。我正在使用MySQL數據庫。如果可能,如何在普通SQL中執行此操作? 感謝,如何從大型數據集中重複檢索一定數量的數據?

+0

怎麼樣http://stackoverflow.com/questions/909556/page-results-in-database-of-your-choice – 2009-06-11 21:33:41

回答

1
SELECT * FROM Inventory 
WHERE whatever 
ORDER BY something 
LIMIT 50 OFFSET 0 

讓你第一個50;第二次使用OFFSET 50;第三次使用OFFSET 100;等等。當然,如果表格在請求之間改變,這可能是一個問題;如果你確實有這個問題,解決它可能是昂貴的(強制鎖定,複製表格或其他不愉快的解決方案 - 沒有魔法)。

如果你的客戶端不記得它上次使用的偏移量,你可以將它存儲在一個單獨的輔助表中,但它確實使SQL複雜化了很多。

1

使用LIMIT

SELECT ... FROM ... LIMIT <offset>, <number> 

在你的情況<number>是50和<offset>將由50每個請求增加。