gpt4 book ai didi

mysql - 如何在 Laravel 5.8 查询中进行 GroupBy

转载 作者:行者123 更新时间:2023-11-29 15:20:25 25 4
gpt4 key购买 nike

我想使用 Laravel 查询生成器对数据中的 table_name 进行分组。但是当我运行它时,结果仍然没有分组。这是我的数据:

enter image description here

这是我执行此操作的查询:

$data['list_module'] = DB::table('roles as a')
->leftJoin('permission_role as b', 'a.id', 'b.role_id')
->leftJoin('permissions as c', 'b.permission_id', 'c.id')
->where('a.id', $id)
->select('c.key','c.table_name')
->groupBy('c.key', 'c.table_name')
->orderBy('c.table_name', 'DESC')
->get();

最佳答案

它已经分组了,它是按keytable_name分组的。

如果您只想按table_name进行分组,请尝试以下操作:

$data['list_module'] = DB::table('roles as a')
->leftJoin('permission_role as b', 'a.id', 'b.role_id')
->leftJoin('permissions as c', 'b.permission_id', 'c.id')
->where('a.id', $id)
->select('c.key','c.table_name')
->groupBy('c.table_name')
->orderBy('c.table_name', 'DESC')
->get();

如果将 sql_mode 设置为 only_full_group_by ,我认为你需要使用any_value:

->select(\DB::raw('ANY_VALUE(c.key) AS key'),'c.table_name')

或者在应用程序的数据库配置文件config/database.php mysql数组中,设置strict => false以禁用MySQL的严格模式:

关于mysql - 如何在 Laravel 5.8 查询中进行 GroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59405038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com