sql >> Databáze >  >> RDS >> Mysql

Ekvivalent GROUP_CONCAT v Django

Můžete si vytvořit svou vlastní agregační funkci (doc )

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)

a použijte jej jednoduše jako:

query_set = Fruits.objects.values('type').annotate(count=Count('type'),
                       name = Concat('name')).order_by('-count')

Používám django 1.8 a mysql 4.0.3



  1. Profilování databáze v IRI Workbench

  2. Jak resetovat kořenové heslo MySQL

  3. Neplatný název běžného uživatele nebo role

  4. Oznámení ClusterControl 1.7.3:Vylepšená podpora PostgreSQL a nové možnosti nasazení cloudu