如何在Laravel中使用Eloquent groupBy和orderBy?

时间:2018-07-19 08:26:38

标签: php laravel group-by eloquent laravel-5.5

\App\Service::groupBy('type')->orderBy('id', 'DESC')->get();

我正在使用laravel 5.5 .. 能帮我解决这个问题吗??

错误报告

“ SQLSTATE [42000]:语法错误或访问冲突:1055'db_name.tbl_name.id'不在GROUP BY中(SQL:从tbl_name组中按type的顺序选择{ {1}} desc)“

3 个答案:

答案 0 :(得分:2)

如果您遇到此错误

SQLSTATE[42000]: Syntax error or access violation: 1055 'tablename.fieldname' isn't in GROUP BY (SQL: select * from `tablename` group by `fieldname`)

然后编辑数据库配置文件config/database.php

在mysql数组中,设置strict => false以禁用MySQL的严格模式

答案 1 :(得分:1)

在MySQL中进行分组时,您只能使用正在分组的字段或所选聚合函数中使用的字段。因此,orderBy('id', 'DESC')在您的情况下将无济于事。

答案 2 :(得分:0)

ModelName::orderBy('tableName.columnName', 'asc')->groupBy('tableName.columnName')->get()->toArray();