django中order_by会影响values_list和distinct组合的查询结果
项目中有这样的查询
TaskDetail.objects.values_list("deploy_app_groups", flat=True).distinct()
发现返回的结果中有重复项,
看LOG中的sql语句,发现查询了该表中的好几个字段,然后对这几个字段共同进行distinct,这样肯定不唯一。不知道为什么没有只查我需要的字段。
参考了这个帖子:
https://stackoverflow.com/questions/10848809/django-model-get-distinct-value-list
加了一个drder_by,就可以了。
TaskDetail.objects.order_by("deploy_app_groups").values_list("deploy_app_groups", flat=True).distinct()
查看具体执行的sql,也只查了需要查询的字段。
如下文章对该现象查了文档,不过也没说的太清楚,有兴趣的可以查看下
https://blog.csdn.net/qq_27361945/article/details/80256298
以上是 django中order_by会影响values_list和distinct组合的查询结果 的全部内容, 来源链接: utcz.com/z/510407.html