使用Eloquent/Raw Laravel查询的组Concat


Group Concat that use Eloquent/Raw Laravel Query

我有一个存储在Eloquent Form 中的Object结构

{"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();

这是我的第一个已经解决的问题:

使用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();

我希望这正是你所需要的,请记住,当在列名中使用hypen时,你必须用backticks包裹它。