【问题标题】:Get JSON array of rows with MySQL使用 MySQL 获取 JSON 行数组
【发布时间】:2019-03-02 16:38:29
【问题描述】:

我希望 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 数组?

【问题讨论】:

    标签: mysql arrays json


    【解决方案1】:

    JSON_ARRAYAGG() 可能就是您要找的。​​p>

    SELECT JSON_ARRAYAGG(
        JSON_OBJECT(
            'ProductId', tblproducts.ProductId,
            'ProductName', tblproducts.ProductName
        )
    ) FROM tblproducts;
    

    这是一个例子:https://www.db-fiddle.com/f/uQ9UC7MDZM4gncNjViTsKw/0

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 1970-01-01
      • 2013-08-09
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多