Используйте формулу для переноса идентификаторов из одного поля в другое - PullRequest
0 голосов
/ 07 мая 2020

У меня есть поле в таблице mysql, в котором хранятся события в JSON. В этом JSON содержится идентификатор файла, о котором идет речь. Есть ли способ, чтобы другое поле автоматически заполнялось этим идентификатором файла? Что-то вроде поля формулы в Excel? Формат внутри JSON: "item_id": "1234567"

Новое в SQL, поэтому помощь приветствуется. :)

Пример JSON в столбце "событие":

{"video_proc_producer_ver": 2, "mp_event": {"project_name": "some project", "project_account ":" some customer "," mp_notes ":" Не найдено игровых идентификаторов комбо для item_id: 1234abcd. \\ n \ n "," item_name ":" file.mov "," mp_m_stamp ":" 2020-03-09 02 : 27: 50 »,« mp_c_stamp »:« 2020-03-09 02:22:14 »,« mp_processing_mask »:« 4 »,« c_user_id »:« 123456 »,« mp_export_time »:« 2020-03-09 02 : 24: 22 ", " item_id ":" 0987654 "," project_id ":" 1234 "," mp_complete_time ":" 2020-03-09 02:27:50 "}}

результат в столбце file_id: 0987654

Я знаю, что могу использовать какой-то процесс за пределами таблицы, чтобы вытащить эту информацию и вставить ее, но мне было интересно, есть ли эквивалент вычисляемого столбца, как в за исключением того, что я могу использовать его внутри таблицы для автоматического заполнения. Если да, то какой столбец мне нужно создать и какую формулу использовать?

1 Ответ

0 голосов
/ 07 мая 2020

Похоже, вы хотите получить доступ к содержимому объекта json. В MySQL вы можете использовать json_extract() или оператор ->>, например:

select event, event ->> '$.mp_event.item_id' file_id from mytable
...