问题:Rails 4查询由单个属性唯一

所以这更像是一个问题,但这就是我想要做的。

我有三个对象可以说,称为项目

<Item id: 1, name: 'Book'>
<Item id: 2, name: 'Car'>
<Item id: 3, name: 'Book'>

我想做一个只返回每个唯一“名称”属性之一的查询。

Item.select('distinct(name), items.*')这样的东西

但这不起作用,它仍然返回所有三个项目。

我怎样才能形成这个查询,以便它只返回:

<Item id: 1, name: 'Book'>
<Item id: 2, name: 'Car'>

解答

如果你想取回整个模型,但仍然保持唯一性,你可以使用这个:

Item.select('distinct on (name) *')

我只用 Postgres 数据库对此进行了测试。它可能适用于mysql,也可能不适用于mysql。

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐