php - 使用 Eloquent/Raw Laravel 查询的 Group Concat

标签 php laravel laravel-4

我有一个以 Eloquent 形式存储的对象结构

{"item_id": "2",
"item_color": "Black",
"item_size": "L",
"item_Quantity": "5",},

{"item_id": "2",
"item_color": "Black",
"item_size": "M",
"item_Quantity": "5",},

{"item_id": "2",
"item_color": "Black",
"item_size": "S",
"item_Quantity": "5",},

{"item_id": "2",
"item_color": "White",
"item_size": "S",
"item_Quantity": "5",},

我想要实现的是将所有具有相同 item_id 和 item_color 的 item_quantity 组合在一起,并以这样的表格形式显示。

ItemID ItemColor    L-M-S     Total
2         Black     5-5-5      15
2         White         5      5

这是我当前的查询

$items = DB::table('item')
            ->select(DB::raw("item_id,item_color,GROUP_CONCAT(item_size SEPARATOR '-') as ItemSize,GROUP_CONCAT(item_Quantity SEPARATOR '-') as Quantity,sum(item_Quantity) as TOTAL"))
            ->groupBy('item_id','item_color')
            ->get();

这是我的第一个已解决的查询:

Display Table form with Eloquent Data Laravel

最佳答案

$items = DB::table('item')
            ->select(DB::raw("item_id,item_color,GROUP_CONCAT(item_Quantity SEPARATOR '-') as `L-M-S`,sum(item_Quantity) as TOTAL"))
            ->groupBy('item_id','item_color')
            ->get();

我希望这就是您所需要的,请记住,在列名称中使用连字符时,您必须将其用反引号括起来。

关于php - 使用 Eloquent/Raw Laravel 查询的 Group Concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31964258/

相关文章:

php - Laravel 5.2 在同一页面上更新 Eloquent Master Detail

php - OctoberCMS 不创建索引

php - Laravel:Auth::user()->id 试图获取非对象的属性

php - 窗口上的 voltDB

php - 尝试在 MySQL 语法中重复字符串,出现语法错误

php - Laravel - 仅针对当前 session 附加到身份验证用户

php - 如何解决访问 laravel 路由时出现 CORS 错误

php - Laravel 捕获 TokenMismatchException

php - 迁移时未找到 Laravel fatal error 类

php - 如何在 Laravel 4 中设置任务调度?