【问题标题】:OFFSET/LIMIT only count DISTINCT values in Activerecord queryOFFSET/LIMIT 只计算 Activerecord 查询中的 DISTINCT 值
【发布时间】:2014-11-10 00:43:17
【问题描述】:

我正在运行这个查询

Playlistship.order("created_at desc").select("distinct playlist_id").limit(12).offset(2)

此查询不一定返回 12 条记录。它返回由LIMITOFFSETORDER 参数定义的一组12 条不同记录的数量。

例如,如果id=13 和id=24 之间的Playlistshipsplaylist_ids 为[2,3,3,5,6,3,5,6,8,11,12, 12],那么这个查询将只返回 7 条记录,对应于第一个具有 playlist_ids [2,3,5,6,8,11,12] 的记录。

我想找到一个查询,该查询产生 12 个具有不同 playlist_ids 的记录,并具有正确的偏移量,因此以 3 的 OFFSET 再次运行此查询将产生接下来的 12 个具有不同 @987654332 的记录@。

希望我没有“过度解释”这个问题,因为我认为这是一个相对简单的问题。如果您需要,请询问更多详细信息。

谢谢!

【问题讨论】:

    标签: activerecord ruby-on-rails-4 limit distinct offset


    【解决方案1】:

    您尝试过子查询吗?试试这个:

    Playlistship.select("distinct playlist_id").limit(12).where(playlist_id: Playlistship.order("created_at desc").select('playlist_id').offset(2))  
    

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2021-05-17
      • 2012-08-25
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多