m
5 февраля 2019 г. 1:41

Удалить элемент из массива (PostgreSql)

PostgreSQL, jsonb

Здравствуйте.
Есть колонка типа jsonb (версия postgres 10.5) вот с такими данными [31,10].
Вопрос как из нее удалить например значение 10.
Через вот это #- или это jsonb_set() не получется.
Спасибо.

2

Вам это нравится? Поделитесь в социальных сетях!

6
Evgenii Legotckoi
  • 5 февраля 2019 г. 2:19

Добрый день.

Если я понимаю правильно, то #- используется для глубокого удаления элементов, возможно, вам достаточно сделать так

  1. SELECT jsonb '[31, 10]' - 10
    m
    • 5 февраля 2019 г. 2:38

    Не возвращает [31,10] :)

      m
      • 5 февраля 2019 г. 2:38

      Немогу понять как путь без ключа прописать?

        m
        • 5 февраля 2019 г. 2:56

        Это работает SELECT '[31, 10]'::jsonb - 1 не нехочется танцевать у костра и искать интекс :)

          Evgenii Legotckoi
          • 5 февраля 2019 г. 14:27
          • Ответ был помечен как решение.

          Понимаю вас. К сожалению не настолько знаком с PostgreSQL в ручных запросах, в основном ОРМ от Django использую.

            m
            • 5 февраля 2019 г. 22:38

            В итоге привел к такому виду {"prop":[31,10]}. Так удобнее.

              Комментарии

              Только авторизованные пользователи могут публиковать комментарии.
              Пожалуйста, авторизуйтесь или зарегистрируйтесь