Maison > base de données > tutoriel mysql > Comment obtenir la fonctionnalité GROUP_CONCAT de MySQL dans Django ?

Comment obtenir la fonctionnalité GROUP_CONCAT de MySQL dans Django ?

Patricia Arquette
Libérer: 2024-11-19 21:05:03
original
750 Les gens l'ont consulté

How to Achieve MySQL's GROUP_CONCAT Functionality in Django?

L'équivalent de Django au GROUP_CONCAT de MySQL

Dans Django, GROUP_CONCAT n'est pas intégré, mais il peut être émulé à l'aide d'une fonction d'agrégation personnalisée.

Création 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)
Copier après la connexion

Cette classe définit la fonction GROUP_CONCAT et son comportement.

Utilisation la fonction d'agrégation personnalisée

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')
Copier après la connexion

Cela renverra un QuerySet avec les résultats souhaités :

apple, 2, "fuji,mac"
orange, 1, "navel"
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal