【发布时间】:2015-02-13 22:52:12
【问题描述】:
我已经重写了这个问题,因为我之前的解释引起了混乱。
在 SQL 世界中,您有一个应用查询的初始记录集。此查询的输出是结果集。通常,初始记录集是整个记录表,结果集是初始记录集中匹配查询规则集的记录.
我有一个用例,我需要我的应用程序偶尔只对表中的记录子集进行操作。如果一个表中有 10,000 条记录,我希望我的应用程序表现得像只存在前 1,000 条记录。每次这些应该是相同的 1,000 条记录。换句话说,我希望 初始记录集 是表中的前 1,000 个设备(按主键排序时),结果集是这些设备的结果记录前 1000 台设备。
已经提出了一些解决方案,并且发现我最初的描述不是很清楚。更明确地说,我并不是要实现分页。我也没有试图限制我收到的结果数量(.limit(1,000) 确实可以实现)。
谢谢!
【问题讨论】:
-
您能详细说明您要涵盖的用例吗?我不明白您是试图只处理前 4 个条目,还是只想处理前四个条目之外的条目。
-
我不知道如何打断你的问题,因为这没什么意义。你的最终目标是什么?要分页吗?
-
简单地说,我想查询一个表的一个小节,而不是整个表。例如,我正在寻找“从表中的前 100 条记录中返回 some_attribute=100 的记录(按
id排序时)”的查询。 -
看来这里
Device.limited.limit(5).offset(5)你尽量不要得到空数组,而是选择5记录,以5开头,因为最新的条件只是改变了prevoius或使其更窄。得到空数组的原因是什么?
标签: ruby-on-rails database ruby-on-rails-4 activerecord arel