tun*_*nak 11 python mysql django distinct django-queryset
不幸的是,我有一个MySQL数据库与Django 1.4.1一起使用. 如果我做对了,不同的功能仅适用于POSTGRESQL.
我必须创建一个由多个值组成的独特查询,而只有一个值,
喜欢; 这个适用于POSTGRE而不适用于MYSQL,我收到以下错误;
此数据库后端不支持DISTINCT ON字段
staff = Staff.objects.order_by('person__full_name').distinct('person__full_name')
Run Code Online (Sandbox Code Playgroud)
然后我试了一下
staff = Staff.objects.values('person__full_name','staff_job_categories').distinct().order_by('person__full_name')
Run Code Online (Sandbox Code Playgroud)
但我没有得到明确的价值观,因为我也得到了员工职位类别.但是当我不包含它时,我无法将其作为数组.
任何的想法 ?
Roh*_*han 17
.distinct([*fields]) 仅适用于PostgresSQL.
来自不同的文档
这是区别.对于正常的distinct()调用,数据库在确定哪些行是不同的时比较每行中的每个字段.对于具有指定字段名称的distinct()调用,数据库将仅比较指定的字段名称.
如上所述,检查记录中的所有字段.在您的情况下,您很可能获得具有不同字段值的记录(如果您查询多个表ManyToMany或ForeignKey关系,则更有可能出现这种情况).
对于合并为数组,您可以参考您之前的问题Django Query不同的值工作,但我不能使用查询结果
小智 5
names = Staff.objects.order_by('person__full_name').values('person__full_name').distinct()
Run Code Online (Sandbox Code Playgroud)
会给你不同的全名,你可以做类似的事情来获得不同的工作类别.
这些将为您提供值列表,而不是对象本身,但如果我正确解释您的问题,那么我认为这些将为您提供您想要的.