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

时间:2018-11-29 08:59:39

标签: mysql json sphinx

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

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

我想将其作为“旅行假期”

我可以使用json数组格式获取值:

["Travel", "Holidays"]

使用当前语句

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

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

我这样做的原因是,狮身人面像搜索也为标签字段建立索引,并且您可以在索引中获得根本不需要的id值

1 个答案:

答案 0 :(得分:1)

好吧,您可以直接让狮身人面像索引["Travel", "Holidays"]

根据charset_table规则,[",将被“忽略”(从技术上讲,它们被视为分隔符并折叠掉了)


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