나는 테이블 필드 jsonb 유형을 가지고 있으며 아래에 데이터가 있습니다.postgresql json 배열 필드에서 데이터를 가져 오는 방법
{"roles": ["7", "73", "163"]}
"73"이 postgresql에 있는지 여부를 확인해야합니다.
이미 검색했지만 배열 객체가 아닌 객체의 객체 만 솔루션을 제공합니다.
나는 정확한 값을
{ "역할"가 해당 기록을 필요로 내가 쿼리 아래 시도했지만이
SELECT *
FROM table
WHERE field->'roles' ? ARRAY ['73'];
또한
--updated--
작동하지 않습니다 : "7"]}
{ "롤"
: "7", "73", "163"]}즉 필드 만이 " 7 "그 안에는 아무것도 없습니다. 모든 경우에 대한 설명서 https://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLE으로
왜 :
오른쪽 JSON 배열을 JSON 배열 일치 -exactly- 왼쪽 않는다 'ARRAY [ '73']'을 사용합니까? 쿼리는'WHERE field -> 'roles'만으로도 잘 작동합니까? '73' '. – Marth
@Marth : 고맙습니다. 반나절 동안 인터넷 검색 및 스택 오버플로 검색을 수행했지만 잠시 후에 제공합니다. – Sandeep
@Marth : 또한 정확한 배열을 찾아야합니다. 그 이유가 ARRAY ['73 ']를 사용하고 있지만 작동하지 않습니다. ( – Sandeep