如何在MySql中从键值数据行创建JSON_OBJECT

axzmvihb  于 2022-11-19  发布在  Mysql
关注(0)|答案(1)|浏览(222)

在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 GROUP_CONCAT( 
        CONCAT( '\'', MyKey, '\',\'', Myvalue, '\'' ) 
        ORDER BY MyKey 
    ) 
    FROM TempValuePair 
);

任何关于我做错了什么的建议都将非常感激。谢谢!

toiithl6

toiithl61#

您 * 似乎 * 需要json_objectagg,它在MySQL 5.7版本之后就可用了。该函数将多行中的键/值对聚合到一个JSON对象中:

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

产量:

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

相关问题