暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Django 的 ORM 实现 group_concat 的分组查询

大码怪 2018-11-23
1031

原始SQl语句:

select ip, group_concat(idas id from white group by ip;

Django-ORM:

1. 创建Concat类
下面的 Concat 类是固定的,不需要更改
from django.db.models import Aggregate, CharField

class Concat(Aggregate):
    """ORM用来分组显示其他字段 相当于group_concat"""
    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)

2. 模型管理器查询使用
White.objects.values('ip').annotate(id=Concat('id'))


文章转载自大码怪,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论