Проверьте, содержит ли json значение в postgres - PullRequest
0 голосов
/ 30 января 2020

Из моей базы данных я сформировал json данные, как показано ниже. Я пытаюсь найти значение в json данных filedata

filedata = {"{\"fc_primary_key\": \"A1234567892017/06/27\"}","{\"fc_primary_key\": \"A1234567892017/06/27\"}","{\"fc_primary_key\": \"A1234567892017/08/07\"}","{\"fc_primary_key\": \"A1234567892017/08/07\"}","{\"fc_primary_key\": \"A1234567892017/08/07\"}","{\"fc_primary_key\": \"A1234567892017/08/07\"}","{\"fc_primary_key\": \"A1234567892017/08/07\"}","{\"fc_primary_key\": \"A1234567892024/03/01\"}","{\"fc_primary_key\": \"A12345678945353\"}","{\"fc_primary_key\": \"A1234567892023/11/22\"}","{\"fc_primary_key\": \"A12345678945252\"}","{\"fc_primary_key\": \"A1234567892017-07-01\"}"}

В приведенных выше данных я пытаюсь найти, есть ли в нем A1234567892023/11/22.

Я пробовал следующий запрос

IF filedata::text @> JSONB '[{"fc_primary_key": "A1234567892023/11/22"}]'
THEN    
 RAISE NOTICE 'PRIMARY KEY %', 'exists';
END IF;

Я получаю сообщение об ошибке, как показано ниже.

ERROR:  operator does not exist: text = jsonb
LINE 1: SELECT filedata::text = JSONB '[{"fc_primary_key": "A1234567...
                              ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

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

...