Maison >base de données >tutoriel mysql >Comment obtenir la fonctionnalité GROUP_CONCAT de MySQL dans Django ?
Dans Django, GROUP_CONCAT n'est pas intégré, mais il peut être émulé à l'aide d'une fonction d'agrégation personnalisée.
Pour créer une fonction d'agrégation personnalisée pour GROUP_CONCAT, suivez ces étapes :
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)
Cette classe définit la fonction GROUP_CONCAT et son comportement.
Pour utiliser votre fonction d'agrégation personnalisée, incluez-la simplement dans votre requête comme suit :
query_set = Fruits.objects.values('type').annotate(count=Count('type'), name=Concat('name')).order_by('-count')
Cela renverra un QuerySet avec les résultats souhaités :
apple, 2, "fuji,mac" orange, 1, "navel"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!