jsonb PostgreSQL условие по элементам массива

Всем привет! Использую PostgreSQL 15. Есть таблица типа:

game (тип text)    |   data (тип jsonb)
----------------------------------------
game1              |   {"PRODUCTION_CATEGORY": ["AAA"],"COMPLETIONLIST_HOURS": [22]}
game2              |   {"PRODUCTION_CATEGORY": ["AA"],"COMPLETIONLIST_HOURS": [21]}
game3              |   {"PRODUCTION_CATEGORY": ["Indie"],"COMPLETIONLIST_HOURS": [22]}

мне нужно получить из нее значения колонки game, где в data->PRODUCTION_CATEGORY встречается "AAA"

Делаю вот такой запрос:

select anket.game::text from anket cross join jsonb_array_elements(data ->'PRODUCTION_CATEGORY') as categ where categ='AAA'

В итоге PostgreSQL выдает ошибку:

ERROR: ОШИБКА: неверный синтаксис для типа json LINE 2: where categ='AAA' DETAIL: Ошибочный элемент текста "AAA". CONTEXT: данные JSON, строка 1: AAA SQL state: 22P02 Character: 119

Не могу взять в толк, что ему не нравится! При этом если убрать условие where, то выводится нормально таблица в соответствии с командой cross join в запросе.

Помогите пожалуйста!


Ответы (0 шт):