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

Привет всем! Помогите разобраться с jsonb функционалом. Есть поле, в

котором храняться данные вида [{"value": 2, "property": 1}, {"value": 3, "property": 2}, {"value": 47835, "property": 3}, {"value": 13, "property": 4}, {"value": 15, "property": 5}, {"value": false, "property": 6}, {"value": [23, 24, 25, 26, 27, 28, 29, 31, 32, 33], "property": 7}, {"value": 50747, "property": 8}, {"value": 21, "property": 9}]. Мне необходимо выбрать все записи, у которых значения value содержат данные из массива, допустим, [2, 11, 3, 5, 6, 7, 22, 23, 33]. Подскажите, куда копать?

2 ответов

12 просмотров

Для начала можно научиться выбирать данные из jsonb поля - https://hackernoon.com/how-to-query-jsonb-beginner-sheet-cheat-4da3aa5082a3 Потом просто использовать оператор IN - https://www.w3schools.com/sql/sql_in.asp

В базовом функционале, видимо, придётся вытаскивать нужные значения в массив/рекордсет и потом уже сравнивать. Т.е. что-то типа: where exists (select value from json_populate_recordset(...) @> ANY(ARRAY[21,22,23]))) (пример с потолка; скорее всего ещё раз где-то надо развернуть список) Либо есть какие-то навороты для улучшения работы с JSON. Но их надо сперва в Постгрес вкрутить.

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта