这是一个示例,表如下:
ID NAME CATEGORY
1 vue javascript
2 django python
3 node javascript
4 flask python
是否有可能获得像这样的分组结果?
[
[{id: 1, name: vue, category: javascript}, {id: 3, name: node, category:javascript}],
[{id: 2, name: django, category: python}, {id: 4, name: flask, category: python}]
]
我尝试使用group by(category)
和group_concat()
,但结果如下:
[
{'id': xxx, name: xxx, category: javascript}, {'id': xxx, name: xxx, category: python}
]
每个类别仅返回一个数据,而不是我想要的分组。
答案 0 :(得分:0)
我认为你想要这个:
select
group_concat('{id: ' || id || ', name: ' || name || ', category: ' || category || '}') col
from tablename
group by category
请参见demo。
结果:
| col |
| ---------------------------------------------------------------------------------- |
| {id: 1, name: vue, category: javascript},{id: 3, name: node, category: javascript} |
| {id: 2, name: django, category: python},{id: 4, name: flask, category: python} |
答案 1 :(得分:0)
这看起来很像JSON减去引号,我必须假设这就是您要的。输入JSON1扩展名:
[
[
{
"id": 1,
"name": "vue",
"category": "javascript"
},
{
"id": 3,
"name": "node",
"category": "javascript"
}
],
[
{
"id": 2,
"name": "django",
"category": "python"
},
{
"id": 4,
"name": "flask",
"category": "python"
}
]
]
返回(漂亮打印后)
inline
如果您不希望使用双引号,则在使用结果时无论如何都将其删除很简单。