MySQL 将 Json 数组展平为值字符串

MySQL flatten Json array to string of values

我在 mysql 中有一个 JSON 字段用于像这样的标签

[
    {"id": 138001, "tag": "Travel"}, 
    {"id": 138002, "tag": "Holidays"}
]

我想将其检索为 'Travel Holidays'

我可以得到 json 数组格式的值:

["Travel", "Holidays"]

与当前语句,

SELECT JSON_EXTRACT(post_tags, '$[*].tag') AS tags FROM posts WHERE post_id = 646745;

但我不确定是否有办法将数组展平为由空格分隔的单个字符串,是否可行?

我这样做的原因是,sphinx 搜索也会为标签字段编制索引,您可以在索引中获取根本不需要的 id 值

好吧,你可以直接让 sphinx 索引 ["Travel", "Holidays"]

根据 charset_table 规则,[", 将只是 'ignored'(从技术上讲,它们被视为分隔符并折叠起来)


也不太熟悉,但也许JSON_UNQUOTE可以用?不知道它是否可以折叠数组。