I've try return json object using "concat" and "group_concat" functions. Problem is that I need to use group_concat but I want to have a valid JSON structure. What I do wrong?
...
SELECT JSON_REPLACE((
SELECT JSON_OBJECT(
'a', 'a',
'b', 'b',
'id', null
)), '$.id', (
SELECT CONCAT(
'[', group_concat(JSON_OBJECT(
'id',
'123')),
']'))
)
result: {"a": "a", "b": "b", "id": "[{\"id\": \"123\"}]"}
expected: {"a": "a", "b": "b", "id": [{"id": "123"}]}
Extra CAST
ing AS JSON
for the third argument of JSON_REPLACE
fixes the issue :
SELECT JSON_REPLACE((
SELECT JSON_OBJECT(
'a', 'a',
'b', 'b',
'id', null
)), '$.id',
CAST( CONCAT('[', GROUP_CONCAT(
JSON_OBJECT('id', '123')),
']') AS JSON )) as "Result JSON"
Result : |
---|
{
"a": "a",
"b": "b",
"id": [
{
"id": "123"
}
]
}