[英]Get JSON array of rows with MySQL
我希望MySQL将以JSON数组的形式返回结果集。
工作查询:
SELECT CONCAT(
'[',
GROUP_CONCAT(
JSON_OBJECT(
'ProductId', tblproducts.ProductId,
'ProductName', tblproducts.ProductName
)
),
']') As Products
FROM tblproducts;
该查询返回以下JSON数组:
[
{
"ProductId": "1",
"ProductName": "Milk"
},
{
"ProductId": "2",
"ProductName": "Bread"
}
]
尽管此代码有效,但我强烈感觉到使用GROUP_CONCAT
和CONCAT
构建JSON数组是一种解决方法。 如果使用JSON_ARRAY
,则结果集将由每个JSON_OBJECT
的JSON数组组成。
我的问题:
是否有任何本机方法来获取结果集中所有JSON_OBJECT
的单个JSON数组?
JSON_ARRAYAGG()
可能就是您想要的。
SELECT JSON_ARRAYAGG(
JSON_OBJECT(
'ProductId', tblproducts.ProductId,
'ProductName', tblproducts.ProductName
)
) FROM tblproducts;
这是一个示例: https : //www.db-fiddle.com/f/uQ9UC7MDZM4gncNjViTsKw/0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.