使用Eloquent / Raw Laravel Query的组Concat

时间:2015-08-12 11:43:33

标签: php laravel laravel-4

我有一个以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_quantity组合在一起,它具有相同的item_id和item_color以及以表格形式显示。

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

1 个答案:

答案 0 :(得分:1)

$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时你必须用反引号包装它。