2014-10-17 2 views
1

내가 장고에서 다음 쿼리를 할 것입니다 방법 :장고 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

답변

1

checksum의 첫 번째 항목을 가져 오시겠습니까?

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

이것은 나를 위해 작동하지 않았다. 오류는 발생하지 않았지만 GROUP BY 결과는 아닙니다. 즉, 동일한 체크섬을 가진 항목이 두 개 이상 있습니다. – David542

+0

정확하게 얻고 싶은 것을 설명해 주시겠습니까? 코드가 작동하고, 방금 테스트했습니다. 그것은 각 체크섬의 한 항목을 반환합니다. 이 [답변] (http://stackoverflow.com/questions/581521/whats-faster-select-distinct-or-group-by-in-mysql)을보십시오 : 대부분의 경우에 동의어입니다. – byashimov