簡體   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