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

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

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

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

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

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

2 ответов

16 просмотров

Типа, такого, если я правильно понял вопрос: 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, так как, похоже, бессмысленно ждать появления ревьюеров.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта