172 похожих чатов

Хорошо, да, действительно это работает. круто. благодарен. и тогда последнее, если

можно.
сформирован json, с ID для запроса, из примера выше.

имеется поле jsonb со структурой
{
"id": 5,
"field": "бла",
"foeld2": "бла2"
}

id тут точно такие же что и из примера выше.
ранее я их искал
field->'id' IN ("2", "3")

Это нормально?
либо может как то к тому поиску что выше можно привести?

2 ответов

3 просмотра

Типа, такого, если я правильно понял вопрос: SELECT * FROM t WHERE data @> ANY(ARRAY['[{"id": 7}]'::jsonb, '[{"id": 5}]'::jsonb]);

Stanislav Skuratov
Типа, такого, если я правильно понял вопрос: SELE...

Для поиска jsonb-массивов, содержащих элементы с id из заданного списка, можно еще использовать jsonpath с переменной, передавая через нее список id: CREATE TABLE test AS SELECT ( SELECT jsonb_agg(jsonb_build_object('id', id)) FROM jsonb_array_elements(ids) id ) jb FROM jsonb_array_elements('[[1,2], [3,4,5], [6,7,8,9]]') ids; SELECT * FROM test WHERE jsonb_path_match(jb, '$[*].id == $ids[*]', '{"ids": [1, 7]}'); [{"id": 1}, {"id": 2}] [{"id": 6}, {"id": 7}, {"id": 8}, {"id": 9}] Кроме того, можно сразу извлечь сами элементы с нужными id: SELECT jsonb_path_query(jb, '$[*] ? (@.id == $ids[*])', '{"ids": [1, 7]}') FROM test; {"id": 1} {"id": 7} Но в отличие от jb @> ANY(ARRAY[...]) по индексу это работать не будет, пока в jsonpath не добавят давно имеющиеся у нас расширения для конструирования массивов и объектов, чтобы стало возможно писать так: jb @@ '$[*].id == [1, 7]' См. https://www.postgresql.org/message-id/flat/e0fe4f7b-da0b-471c-b3da-d8adaf314357%40postgrespro.ru Собираемся в ближайшее время выпустить их у себя в PgPro Standard, так как, похоже, бессмысленно ждать появления ревьюеров.

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

Обсуждают сегодня

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us We offer Interview Support for a low cost variety of technol...
Rambabu Nallamilli
3
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
Карта сайта