所以这更像是一个阿雷尔问题,而不是任何问题,但以下是我试图做的.

我有三个物体,比如说,叫做物品

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

我想做一个查询,只返回每个唯一的"name"属性中的一个.

大约Item.select('distinct(name), items.*')

但这不起作用,它仍然会返回所有三项.

如何形成此查询,使其仅返回:

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

推荐答案

如果要恢复整个模型,但仍保持唯一性,可以使用以下方法:

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

我只在Postgres数据库中测试过.它可能适用于mysql,也可能不适用于mysql.

Postgresql相关问答推荐

处理Ruust-DIESEL中的Jsonb PostgreSQL列

如何在PostgreSQL 16中设置&Q;VARSIZE&Q;和&Q;SET_VARSIZE&Q;

为MCV扩展统计设置统计目标

Postgres:一次插入多行时自定义upsert(存储过程?)?

空表上的 Postgres 意外行为

Postgres 视图定义 (pgAdmin) 被删除了 comments ?

在 SQL 上返回负值

Postgres/psycopg2 - 插入字符串数组

在执行 postgresql 函数时提交事务

为什么 PostgreSQL 将用户和组合并为角色?

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

Docker - Postgres 和 pgAdmin 4:Connection refused

postgresql 分组和内部连接

为 Django Postgres 连接强制 SSL

manage.py 迁移时必须是关系 django_site 的所有者

解释结果中的Recheck Cond是什么意思?

避免通过 JPA 将null值插入数据库表

使用 Postgresql 在过滤器中制作 Sqlalchemy 使用日期

处理用户发送的string contains null byte

与 iexact 一起使用时,Django get_or_create 无法设置字段