【问题标题】:ActiveRecord uniq with multiple columns具有多列的 ActiveRecord uniq
【发布时间】:2020-07-01 17:38:00
【问题描述】:

我正在尝试从User 模型中查询唯一的记录(基于nameage),即删除所有重复项但保留它的第一条记录。

这在这里有效,但我如何使它与 nameage 两列一起工作。

User.all.uniq(&:name)

类似的东西

User.all.uniq(&:name, &:age)

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord


    【解决方案1】:

    你可以这样做:User.select(:name, :age).distinct

    注意:在 Rails 5+ 中,.uniq 已弃用,建议改用.distincthttps://edgeguides.rubyonrails.org/5_0_release_notes.html#active-record-deprecations

    【讨论】:

      【解决方案2】:

      我相信你能做到

      User.select('DISTINCT ON (name,age)')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-10
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-11
        相关资源
        最近更新 更多