【问题标题】:Is there an easy way to get the record number N in a query?有没有一种简单的方法可以在查询中获取记录号 N?
【发布时间】:2011-05-31 06:51:51
【问题描述】:

我想要实现的,可以(以低效的方式)像这样完成:

records = SomeModel.where(:some_field => "some value").all
required_record = records[n]

... 其中 n 是记录在 作用域(按“where”)结果中的给定位置。

显然,对于大桌子来说效率很低。有没有办法在不获取所有记录的情况下实现这一点?

【问题讨论】:

    标签: sql ruby-on-rails activerecord scope


    【解决方案1】:

    使用offsetlimit 的组合仅获取您想要的行。例如,仅获得第 5 个结果:

    SomeModel.where(:some_field => "some value").offset(5).limit(1)
    

    【讨论】:

      【解决方案2】:

      呃,我不确定我是否理解你的问题......数据库通常不关心行的顺序,所以你是按字段排序吗?如果是这样,您可以使用 PostgreSQL 中的 rank() 函数(http://www.postgresql.org/docs/current/static/tutorial-window.html)。

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 2017-06-25
        • 2011-01-27
        • 2017-07-05
        • 1970-01-01
        • 2011-04-20
        • 2011-01-15
        • 2019-10-16
        • 2011-11-03
        相关资源
        最近更新 更多