У меня есть следующая таблица:
CREATE TABLE mbiz.dictionary_groups (
slgr_id jsonb NOT NULL,
stored jsonb NOT NULL,
modified_date timestamp NOT NULL DEFAULT now(),
CONSTRAINT dictionary_groups_pkey PRIMARY KEY (slgr_id)
);
и сохраняет json объект в столбце с именем «сохранено», пример:
{
"Position":
{"RotationId": 0, "SubGroupId": 0, "DiscoutGroupId": 99, "PriceIntervalId": 0},
"DefaultValue": 0.0,
"PositionValues":
[
{"Value": 26.0, "ProfileId": 1},
{"Value": 18.0, "ProfileId": 2},
{"Value": 33.0, "ProfileId": 12}
]
}
Я пытаюсь найти все записи где любая запись в «PositionValues» будет иметь «ProfileId», равный 2.
Это Postgres 9.5, я нашел несколько советов, где пользователи предлагают использовать ?
или @>
, но когда я попробовал это , Я получил сообщение об ошибке:
"SQL Ошибка [42883]: ОШИБКА: оператор не существует: @> неизвестно
Подсказка: ни один оператор не соответствует данному имени и типу аргумента (s) Возможно, вам понадобится добавить явные приведения типов.
Позиция: 85 "