我尝试使用“ concat”和“ group_concat”函数返回json对象。 问题是我需要使用group_concat但我想要一个有效的JSON结构。我做错了什么?
...
SELECT JSON_REPLACE((
SELECT JSON_OBJECT(
'a', 'a',
'b', 'b',
'id', null
)), '$.id', (
SELECT CONCAT(
'[', group_concat(JSON_OBJECT(
'id',
'123')),
']'))
)
结果:{"a": "a", "b": "b", "id": "[{\"id\": \"123\"}]"}
预期:{"a": "a", "b": "b", "id": [{"id": "123"}]}
答案 0 :(得分:2)
答案 1 :(得分:0)
这就是您需要的JSON_ARRAYAGG
SELECT JSON_REPLACE((SELECT JSON_OBJECT(
'a', 'a',
'b', 'b',
'id', null
)), '$.id',
(SELECT JSON_ARRAYAGG(JSON_OBJECT('id','123')))
)
如果不使用JSON_ARRAYAGG
SELECT JSON_REPLACE((SELECT JSON_OBJECT(
'a', 'a',
'b', 'b',
'id', null
))
, '$.id'
, (SELECT JSON_ARRAY(CAST(group_concat(JSON_OBJECT('id','123')) as json)))
)