按列获取多行分组

时间:2021-07-02 14:56:08

标签: mysql eloquent

我有这个结构的sql表,

id  |  type   | name 
1   | type1  | name1
2   | type1  | name2
3   | type2  | name3
4   | type2  | name4

我想像这样按类型分组所有名称

"type1" : [name1,name2] "type2" : [name3,name4]

我正在使用 Laravel eloquent,我尝试了 keyBy('type') 但它只给出了每种类型的一行,如何获取一种类型的所有名称

1 个答案:

答案 0 :(得分:0)

似乎您正在寻找 group_concat 聚合函数:

SELECT   type, CONCAT('[', GROUP_CONCAT(name), ']')
FROM     mytable
GROUP BY type