【问题标题】:How to Create a JSON_OBJECT in MySql From Rows of Key-Value Data如何在 MySql 中从键值数据行创建 JSON_OBJECT
【发布时间】:2022-11-12 06:44:35
【问题描述】:

在 MySQL 中,我试图从包含键值对的数据行创建一个 JSON_OBJECT。

这是示例数据:

CREATE TABLE TempValuePair( MyKey VARCHAR(64), MyValue VARCHAR(64) );
INSERT INTO TempValuePair VALUE ('Country', 'Argentina'), ('Capital', 'Buenos Aires'), ('Population', 45810000 );

以下语句似乎返回了一个符合 JSON_OBJECT 要求的参数:

SELECT GROUP_CONCAT( CONCAT( '\'', MyKey, '\',\'', Myvalue, '\'' ) ORDER BY MyKey ) FROM TempValuePair;

但是,以下语句失败:

SELECT JSON_OBJECT( SELECT GROUP_CONCAT( CONCAT( '\'', MyKey, '\',\'', Myvalue, '\'' ) ORDER BY MyKey ) FROM TempValuePair );

任何关于我做错了什么的建议将不胜感激。谢谢!

【问题讨论】:

    标签: mysql json


    【解决方案1】:

    似乎想要json_objectagg,它在 MySQL 5.7 版本后可用。该函数将来自多行的键/值对聚合到一个 JSON 对象中:

    select json_objectagg(mykey, myvalue) as js from TempValuePair;
    

    产量:

    {"Capital": "Buenos Aires", "Country": "Argentina", "Population": "45810000"}
    

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 1970-01-01
      • 2013-02-24
      • 2019-04-09
      • 1970-01-01
      • 2015-05-24
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多