2013-07-10 1 views
4

이의 내가 이름, 성별, 연령, 같은 몇 가지 일반적인 열이있는 데이터베이스 테이블이 있다고 가정 해 봅시다 JSON 형식의 값을 기준으로 JSON에서 임의의 길이와 임의의 필드 (포스트 그레스 9.2에서 사용 가능) JSON 데이터 형식 :... -</p> <p>내가 사용하여 추가 열이 외에 ...

{"occupation":"football"} 

{"occupation":"football", "hair-colour":"black"} 

{"hair-style":"curly"} 

내가 직업 = 예를 들어 축구 모든 행을 반환 할 포스트 그레스 9.3의 새로운 기능을 사용. 이 의사 같은

뭔가 : select * from table where json_field.occupation = football

는이 일을 수있는 방법이 있나요?

+1

중복 : http://stackoverflow.com/questions/10560394/how-do-i-query-using-fields-inside-the-new-postgresql-json-datatype – nif

+1

쿼리는 같을 것이다 나는 이미 이것을 보았다. 내가 질문에 업데이 트에 언급 된 사용자 정의 기능을 피하려고합니다. 그리고 응답 구조가 내 것과 다른 것처럼 보입니다. – Filip

+0

중복 질문의 답안 포스터는 배열에서 여러 행을 만들기 위해'json_to_elements' 함수를 사용했습니다. 따라서 구조는 각 행마다 하나의 JSON 객체를 포함하는 구조와 동일합니다. 사용자 지정 기능이 사용되지 않았습니다. 해결책은 당신이 받아 들인 것과 똑같습니다. – nif

답변

8

설명서를 올바르게 이해했다면 -> 및연산자를 사용하여 JSON 필드에 액세스 할 수 있습니다.

SELECT * 
FROM your_table 
WHERE json_field ->> 'occupation' = 'football'; 
+0

그랬어! 고맙습니다. – Filip

관련 문제