#sql #arrays #json #postgresql
#sql #массивы #json #postgresql
Вопрос:
это мой объект json, который уже хранится в моей базе данных postgres 11
[{«user_id»: 0, «user_name»: «», «user_role»: «», «start_timestamp»: «2020-09-08 04:01:31.636848″, » отметка конечного времени»: «2020-09-08 04:01:31.636848″, » hold_timestamp_list»: [], «handover_link»: «», «curr_state»: «Для выделения», «is_complete»: 1, «is_onhold»: 0}, {«user_id»: 910, «user_name»: «INM», «user_role»: «», «start_timestamp»: «2020-09-09 05:11:06.476766″,»end_timestamp»: «», «hold_timestamp_list»: [{«s»: «2020-09-09 05:11:07.359749″, » e»: «»}], «handover_link»: «», «curr_state»: «Разработка», «is_complete»: 0, «is_onhold»:1}]
как я могу получить имя_пользователя из последнего индекса (т.е. индекс 2 , значение =
{«user_id»: 910, «user_name»: «INM», «user_role»: «», «start_timestamp»: «2020-09-09 05:11:06.476766″, » end_timestamp»: «», «hold_timestamp_list»: [{«s»: «2020-09-09 05:11:07.359749», «e»: «»}], «handover_link»: «», «curr_state»: «Разработка», «is_complete»: 0, «is_onhold»: 1}
Комментарии:
1. Какую версию Postgres вы используете?
Ответ №1:
Вы можете использовать отрицательный индекс для получения последнего элемента массива json, например:
mycol -> -1
Если вам нужно соответствующее имя пользователя:
mycol -> -1 ->> 'user_id'
Или, может быть, вам нужен целочисленный результат:
(mycol -> -1 ->> 'user_id')::int