2012-03-09 50 views
0

我有一個Web應用程序,當您進入頁面時,會調用ajax來獲取數據庫中的所有數據。它將數據存儲到全局變量中,隨着用戶向下滾動頁面,它將更多地加載到頁面中。現在我想能夠調用數據庫,並在數據庫向下滾動時從數據庫中獲取20個項目,而不是在頁面加載時全部獲取它們。有沒有這樣做的好方法?謝謝你的幫助。如何從MySQL數據庫中獲取固定數量的項目

這裏是我想要做的 1.Page負載(獲得第20項) 2.As他們向下滾動底部附近的內容(Ajax調用,以獲得未來20並追加到表格,列表等)

mysql幫助正確查詢。

回答

7

MySQL支持的LIMIT關鍵字上selects,例如:

SELECT foo,bar 
FROM charlie 
WHERE criterion = value 
LIMIT 20 

它最多可以接受兩個參數。如果您提供一個,則返回的行數(最大值)。如果您提供兩個,第一個是偏移(跳過)值,第二個是限制。例如。 (從文檔):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 

結合LIMITORDER BY和禁止插入,你有分頁。

+2

然後,對於後續查詢,你可以嘗試LIMIT 20,20和40 LIMIT 20 。Whe您提供LIMIT的兩個值,第一個值是起始偏移量。或者,您可以傳遞一個ID,並執行WHERE'id'>(之前的值) – 2012-03-09 22:42:37

2

是的,SELECT上的LIMIT選項會起作用。您顯然還需要跟蹤當前位置,並使用帶LIMIT的偏移參數來確保您繼續前進。

極限[偏移],限制

所以,你以後的第20查詢,你需要存儲位置(20),然後使用它作爲偏移:

LIMIT 20 ,20

然後,你需要增加的偏移,使你的極限是:

LIMIT 40,20

相關問題