【问题标题】:How to merge table rows data based on same column value如何根据相同的列值合并表行数据
【发布时间】:2019-07-02 07:22:39
【问题描述】:

我有表名 abc,它的列是

id    table_row_name   a     b    c
1     user             1     1    Null
2     user             Null  Null 1  

如何通过如下查询合并到一条记录中,laravel 的处理方式是什么

      table_row_name   a     b    c
      user             1     1    1

【问题讨论】:

    标签: mysql eloquent laravel-query-builder


    【解决方案1】:

    你可以试试下面的查询

    select table_row_name, max(a) as a, max(b) as b, max(c) as c
    from tablename
    group by table_row_name
    

    【讨论】:

    • 你知道如何在 laravel 的 eloquent 或 query builder 中实现这一点
    【解决方案2】:

    您可以通过以下查询轻松实现:

    \DB::table('abc')
            ->select([
                'table_row_name',
                \DB::raw('MAX(a) as a'),
                \DB::raw('MAX(b) as b'),
                \DB::raw('MAX(c) as c')
            ])
            ->groupBy('table_row_name')
            ->get();
    

    【讨论】:

    • 如果您想选择所有列但只想按其中的列分组怎么办?
    猜你喜欢
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2012-05-21
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    相关资源
    最近更新 更多