2013-09-26 66 views
0

據我所知,我可以使用People.first(100)檢索前100條記錄,People.last(100)也是如此。通過ActiveRecord的ID範圍

我不知道的是,我怎樣檢索範圍在200-400的所有對象,總數是多少可以說一個1000條記錄?

回答

1

你需要的是limitoffset - 閱讀this瞭解更多信息。

實施例:

People.limit(200).offset(200) 

上面的代碼需要200個記錄從第201位開始記錄 - 這意味着它是記錄201-400。

+0

請記住,這不會返回範圍內的值,它將返回從第201條記錄開始的200條記錄。因此,假設你已經刪除了50個記錄,其ID爲200到400,你將獲得200條記錄,但是你的記錄可能有200到450之間的任何一個記錄。這是否有意義?所以limit-offset方法可以確保您獲得200條記錄,但是如果您正在尋找一系列id(或其他字段),您可以使用where方法。 –

0

您是否在特定字段上搜索,您的標題暗示您在搜索ID?

People.where('id BETWEEN ? AND ?', 200, 400) 

或...

People.where(id: 200..400) 

如果你不是在某一特定領域搜索,你會想用Big_Bird的限制和偏移方法。