m
05 лютого 2019 р. 01:41

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

PostgreSQL, jsonb

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

2

Вам це подобається? Поділіться в соціальних мережах!

6
Evgenii Legotckoi
  • 05 лютого 2019 р. 02:19

Добрый день.

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

SELECT jsonb '[31, 10]' - 10
    m
    • 05 лютого 2019 р. 02:38

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

      m
      • 05 лютого 2019 р. 02:38

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

        m
        • 05 лютого 2019 р. 02:56

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

          Evgenii Legotckoi
          • 05 лютого 2019 р. 14:27
          • Відповідь була позначена як рішення.

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

            m
            • 05 лютого 2019 р. 22:38

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

              Коментарі

              Only authorized users can post comments.
              Please, Log in or Sign up