繁体   English   中英

使用MySQL获取行的JSON数组

[英]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_CONCATCONCAT构建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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM