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 Т.Ж.

Добрый день.

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

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, 2:27 Т.Қ.
          • Жауап шешім ретінде белгіленді.

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

            m
            • Ақп. 5, 2019, 10:38 Т.Қ.

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

              Пікірлер

              Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
              Кіріңіз немесе Тіркеліңіз