Я получил данные Json, хранящиеся в столбце (курсах) MySQL DB в этом формате:
[
[
{"value":null},
{"value":"PaketA"}
],[
{"value":"2,10"},
{"value":"3,10"}
],[
{"value":"4,10"},
{"value":"3,15"}
],[
{"value":"8,10"},
{"value":"3,15"}
],[
{"value":"12,00"},
{"value":"3,20"}
],[
{"value":"20,00"},
{"value":"3,25"}
],[
{"value":"31,50"},
{"value":"3,30"}
]
]
Я хотел бы получить такое значение, используя sql:
Column 1 │ Column 2
Null │ PaketA
2,10 │ 3,10
4,10 │ 3,15
etc... │ etc...
Это возможно?
Всякий раз, когда я пытался использовать команду json parsing, например:
Выбрать
ставки [0] AS rate_0
FROM tablev
Я всегда получаю:
Invalid argument types for function "GET"
Спасибо
Вы можете сделать это с помощью json_extract. Предполагая, что имя таблицы - JSON_TABLE, а json cloumn - JSON_DATA
SELECT json_unquote(json_extract(JSON_DATA, '$[0][0].value')) AS Column_1, json_unquote(json_extract(JSON_DATA, '$[0][1].value')) AS Column_2 FROM JSON_TABLE;
Однако это приведет только к первой "строке". Вы можете использовать SP для итерации через массив JSON, чтобы получить остальное.
json
json
, '$ [0] .value') ;. Я помню, что мы должны использовать JSON_EXTRACT. dev.mysql.com/doc/refman/5.7/en/json-search-functions.html