SELECT
`id`,
/* tags_joined */ (
SELECT
COALESCE(
GROUP_CONCAT(`jsontable`.`item` SEPARATOR ', '), -- join array items
'' -- fallback value for nonexistent or empty array
)
FROM
`my_table` AS `jsonsource`, -- alias for WHERE
-- implicit lateral join
JSON_TABLE(
`jsonsource`.`tags`,
'$[*]' -- path to array items
COLUMNS(`item` VARCHAR(10) PATH '$') -- array item to table column
) AS `jsontable`
WHERE `jsonsource`.`id` = `my_table`.`id` -- current row only
) AS `tags_joined`
FROM `my_table`
2条答案
按热度按时间jgzswidk1#
这需要使用MySQL 8.0中支持的JSON_TABLE()函数:
o7jaxewo2#
您可以这样做: