2014-10-17 58 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