如何在 laravel 中使用 concat 和 group by?

Posted

技术标签:

【中文标题】如何在 laravel 中使用 concat 和 group by?【英文标题】:How to use concat and group by in laravel? 【发布时间】:2021-06-03 02:33:42 【问题描述】:

我想使用GROUP BYCONCAT 获取数据。我可以在 SQL 内联编辑器中获取这些数据我想知道如何在 Laravel 中获取这些数据。 我想要我想要的结果,就像附加的图片一样

我的 SQL 查询是:

SELECT created_at, GROUP_CONCAT(answer) FROM answers
where cid=293 and qid in (7, 8, 9, 10, 11, 12)
group by created_at

【问题讨论】:

您使用的是 Eloquent 还是 Query Builder? @Daniel Eloquent 【参考方案1】:

Eloquent 查询应该是这样的:

$answers = Answer::select('created_at')
              ->selectRaw('GROUP_CONCAT(answer)')
              ->where('cid', 293)
              ->whereIn('qid', [7,8,9,10,11,12])
              ->groupBy('created_at')
              ->get();

【讨论】:

【参考方案2】:

你可以这样做,

$list = Modelname::where('cid', 293)
        ->whereIn('qid',[7, 8, 9, 10, 11, 12])
        ->select('created_at')
        ->selectRaw('GROUP_CONCAT(answer) as answer')
        ->groupBy('created_at')
        ->get();

【讨论】:

非常感谢......你拯救了我的一天

以上是关于如何在 laravel 中使用 concat 和 group by?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中执行复杂的 mysql 查询

Laravel如何使用querybuilder从两列进行组合concat

Laravel 5 中的 group_concat() 问题

Laravel:带有 GROUP_CONCAT 和 DISTINCT ON 的 selectRaw

Group_concat - laravel 雄辩

如何在 Laravel-5 中构建子查询 [重复]