MySQL выравнивает массив Json до строки значений - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть поле JSON в mysql для таких тегов, как

[
    {"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 индексирует также поле тегов, и вы можете получить значения идентификатора в индексе, который вообще не нужен

1 Ответ

0 голосов
/ 29 ноября 2018

Ну, вы могли бы просто позволить индексу сфинкса ["Travel", "Holidays"] напрямую.

Согласно charset_table правилам, [, " и , будут просто "игнорироваться" (более технически трактуются как разделители и разрушаются)


Тоже не знаком с этим, но может JSON_UNQUOTE может сработать?Не знаю, может ли это разрушить массивы.

...