У меня есть таблица в базе данных postgresql 9.4 с полем jsonb, называемым приемниками. Некоторые примеры строки:Postgresql массив запросов объектов в поле JSONB
[{"id": "145119603", "name": "145119603", "type": 2}]
[{"id": "1884595530", "name": "1884595530", "type": 1}]
[{"id": "363058213", "name": "363058213", "type": 1}]
[{"id": "1427965764", "name": "1427965764", "type": 1}]
[{"id": "193623800", "name": "193623800", "type": 0}, {"id": "419955814", "name": "419955814", "type": 0}]
[{"id": "624635532", "name": "624635532", "type": 0}, {"id": "1884595530", "name": "1884595530", "type": 1}]
[{"id": "791712670", "name": "791712670", "type": 0}]
[{"id": "895207852", "name": "895207852", "type": 0}]
[{"id": "144695994", "name": "144695994", "type": 0}, {"id": "384217055", "name": "384217055", "type": 0}]
[{"id": "1079725696", "name": "1079725696", "type": 0}]
У меня есть список значений для идентификатора и хотят выбрать любую строку, содержащую объект с любым из значений этого списка, в пределах массива в jsonb поля.
Возможно ли это? Есть ли индекс GIN, который я могу сделать, это ускорит это?
Вот другой подход: http://dba.stackexchange.com/questions/130699/postgresql-json-query-array-against-multiple-values – Chrizt0f
@ Chrizt0f это мой 1. подход ('ANY' может быть выражен выражениями' OR'ed '). Обычно в клиентских приложениях трудно привязать 'jsonb []', но если OP (или любой, кто заинтересован в этом) может это сделать, это также правильное решение, но обратите внимание, что он будет использовать индекс несколько раз, поэтому мой оригинальное примечание по-прежнему применяется (* Если у вас есть небольшой (и исправленный) (sic!) количество идентификаторов для запроса *) - но с 'ANY' удобнее поставлять нефиксированное количество идентификаторов OFC. – pozs