Mysql
 sql >> база данни >  >> RDS >> Mysql

GROUP_CONCAT еквивалент в Django

Можете да създадете своя собствена агрегатна функция (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)

и го използвайте просто като:

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

Използвам django 1.8 и mysql 4.0.3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL индексира ли автоматично колоните с външни ключове?

  2. Достъп до отдалечена база данни на mysql от командния ред

  3. Поправяне на счупено UTF-8 кодиране

  4. Използване на MySQLi от друг клас в PHP

  5. Фалшиво ограничение на външния ключ е неуспешно