2014-10-17 55 views
1

我会怎么做在Django以下查询:Django的选择MySQL的不同

Asset.objects.all().distinct('checksum') # get all distinct checksum items 

SQL等效是:

SELECT * FROM asset GROUP BY checksum 

请注意,我这里需要所有领域,所以我不能像Asset.objects.values_list('checksum').distinct()那样做。我将如何做到这一点?

+0

不确定你在这里要求什么。你能提供一个示例数据集和你想要的结果吗? – Joseph 2014-10-17 07:11:36

回答

1

想要得到每个checksum的第一个项目吗?

items = Asset.objects.all() 
items.query.group_by = ['checksum'] 
print items 
[<Asset: ...] 
+0

这似乎不适用于我。它没有引发错误,但没有GROUP BY结果 - 即,我有多个具有相同校验和的项目。 – David542 2014-10-17 19:09:22

+0

你能解释一下你到底想要什么吗?代码起作用,我刚刚测试过。它返回每个校验和的一个项目 - 不同的也是一样的。看看这个[回答](http://stackoverflow.com/questions/581521/whats-faster-select-distinct-or-group-by-in-mysql):在大多数情况下,它们是同义词。 – byashimov 2014-10-18 07:25:01