mysql将json数组展平为值字符串

mkh04yzy  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(481)

我在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;

但我不确定是否有办法将数组展平为一个由空格分隔的字符串,有可能吗?
我这样做的原因是,sphinx search还为tags字段编制索引,您可以在索引中获得根本不需要的id值

c2e8gylq

c2e8gylq1#

你可以让斯芬克斯索引 ["Travel", "Holidays"] 直接。
根据 charset_table 规则,规则 [ , " 以及 , 只会被“忽略”(更严格地说,被视为分隔符并折叠掉)
也不熟悉,但也许 JSON_UNQUOTE 能用吗?不知道它是否可以折叠数组。

相关问题