집 >데이터 베이스 >MySQL 튜토리얼 >Django에서 MySQL의 GROUP_CONCAT 기능을 구현하는 방법은 무엇입니까?
Django에는 GROUP_CONCAT이 내장되어 있지 않지만 사용자 정의 집계 함수를 사용하여 에뮬레이션할 수 있습니다.
GROUP_CONCAT에 대한 사용자 정의 집계 함수를 생성하려면 다음 단계를 따르십시오.
from django.db.models import Aggregate class Concat(Aggregate): function = 'GROUP_CONCAT' template = '%(function)s(%(distinct)s%(expressions)s)' def __init__(self, expression, distinct=False, **extra): super(Concat, self).__init__( expression, distinct='DISTINCT ' if distinct else '', output_field=CharField(), **extra)
이 클래스는 GROUP_CONCAT 함수와 해당 동작을 정의합니다.
사용자 정의 집계 함수를 사용하려면 다음과 같이 쿼리에 이를 포함시키기만 하면 됩니다.
query_set = Fruits.objects.values('type').annotate(count=Count('type'), name=Concat('name')).order_by('-count')
이렇게 하면 원하는 결과가 포함된 QuerySet이 반환됩니다.
apple, 2, "fuji,mac" orange, 1, "navel"
위 내용은 Django에서 MySQL의 GROUP_CONCAT 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!