Мои данные JSON:
{
"content":"{\"type\":3,\"from\":\"home\"}",
"id":"239",
"idtype":"0",
"timestamp":"1547957367281",
"type":"0"
}
Я хочу получить это в таблице json_data в следующем формате:
+-------------+
| from |
+-------------+
| home |
+-------------+
Как мне использовать функцию разнесения отсюда, чтобы получить желаемый результат?

Вы можете использовать regexp_replace для удаления \, также следует удалить " до { и после }. Используйте get_json_object или json_tuple для извлечения атрибутов. Тестирование на вашем примере данных:
select get_json_object(json,'$.content.from') as `from`
from
(
select
regexp_replace(
regexp_replace(
regexp_replace(
'{"content":"{\"type\":3,\"from\":\"home\"}",
"id":"239",
"idtype":"0",
"timestamp":"1547957367281",
"type":"0"
}' --original data
,'\\\"','\"') --replace \" with "
,'\\"\\{','{') --remove " before {
,'\\}\\"','\\}') --remove " after } --these last two can be combined
as json
)s
;
Вывод:
OK
from
home
Time taken: 0.329 seconds, Fetched: 1 row(s)
Лучше проверить эти regexp_replaces один за другим, чтобы убедиться, что они работают должным образом. Надеюсь, вы поняли идею