@Ivanoff-i

Как добавить значение в jsonb, при условии, что такого значения в нем нет?

Задача следующая. Нужно добавить значение в поле jsonb, вида [2,7,835,824,26] еще одно число, при условии, что его там нет. Другими словами, добавить значение в сет в тех записях, в которых в сете нет этого значения.
На данный момент пришел к такому:
UPDATE public.table SET jsonb_field = jsonb_set(jsonb_field, '{1000000000}','4') WHERE jsonb_field NOT IN (SELECT jsonb_field FROM public.table WHERE jsonb_field @> '4');

Может есть более простые и более правильные варианты?
  • Вопрос задан
  • 340 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kshvakov
убрать селект, зачем NOT IN (SELECT...?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы