我在 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 搜索也会索引标签字段,并且您可以在索引中获取根本不需要的 id 值
最佳答案
那么你可以让 sphinx 直接索引 ["Travel", "Holidays"]
。
根据 charset_table
规则,[
、"
和 ,
将被“忽略”(更多技术上被视为分隔符并折叠起来)
也不熟悉它,但也许 JSON_UNQUOTE
可以工作?不知道是否可以折叠数组。
关于MySQL 将 Json 数组展平为值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535155/