/ / Как да получавам данни от полето масив postgresql json - sql, json, postgresql

Как да получите данни от postgresql json масив поле - sql, json, postgresql

Имам тип поле jsonb в таблицата и имам данни по-долу.

{"roles": ["7", "73", "163"]}

Трябва да проверя "73" присъства или не от postgresql.

Вече търся, но единственото дава решение за обект на обект, а не на масив от масив.

Опитах по-долу заявка, но не работи

SELECT *
FROM table
WHERE field->"roles" ? ARRAY ["73"];

--updated--

също ми трябва само този запис, който има точна стойност

{"роли": ["7"]}

{"role": ["7", "73", "163"]}

т.е. полето има само "7", а не нещо друго в него.

Отговори:

1 за отговор № 1

По документацията https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE за всички ваши случаи:

Съществува ли ключ –single в масива json:

SELECT  *
FROM    table
WHERE   field -> "roles" ? "73";

Съществува ли -any- от ключовете отдясно в json масив:

SELECT  *
FROM    table
WHERE   field -> "roles" ?| ARRAY[ "7", "163" ] ;

Има ли -ал- клавишите вдясно в левия json масив:

SELECT  *
FROM    table
WHERE   field -> "roles" ?& ARRAY[ "7", "163" ] ;

Съвпада ли левият json масив-точно - с десния json масив:

SELECT  *
FROM    table
WHERE   field -> "roles" = $$[ "7" ]$$::jsonb ;

Дано помогне :)