【问题标题】:Laravel group by with select all columnLaravel group by 选择所有列
【发布时间】:2020-07-20 03:30:09
【问题描述】:

在 laravel eloquent 上有没有办法像这样查询:

select users.* from users group by name

在代码上实现它:

Users::select('name')->groupBy('name')->get();

现在我需要获取用户的其他详细信息(列)。有没有办法在不聚合模型上的每一列的情况下进行查询,这是行不通的:

Users::select('users.*')->groupBy('name')->get();

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    试试这个

    Users::groupBy('name')->get();
    

    由于 laravel 与你使用的数据库类型无关,所以你的查询应该是雄辩的。 更多详情请阅读本官方documentation

    【讨论】:

      【解决方案2】:

      这是有效的;

      Users::select('users.*')->groupBy('name')->get();
      

      只需确保您的型号名称。你不必写类名,如果模型名是用户则更改为

      User::groupBy('name')->get();
      

      不要忘记根据你的文件夹结构在顶部导入模型use App\User;

      【讨论】:

        猜你喜欢
        • 2017-02-10
        • 2012-05-16
        • 2021-12-17
        • 1970-01-01
        • 2010-12-06
        • 2019-12-22
        • 2021-01-15
        • 1970-01-01
        • 2019-11-15
        相关资源
        最近更新 更多