jsonb 배열의 중첩 키를 기반으로 행 찾기

코르 빗

Postgres 9.6에 다음 형식의 JSON 배열이 포함 된 jsonb 열이 있습니다.

[
  {
    "courses": { "course-1": { "graduated": false }, "course-5": { "graduated": true } }
  },
  {
    "courses": { "course-6": { "graduated": false } }
  }
]

하나 course-1또는 course-12단일 쿼리로 등록한 모든 사용자를 찾고 싶습니다 . 즉, 하나가 사용자 course-1또는 course-12courses자신의 항목 중 하나에 대한 객체 jsonb배열입니다.

물론 작동하지 않는 다음과 같은 많은 것을 시도했습니다.

select enrollment_info from users where (enrollment_info @> '["courses" ?| array['course-1', 'course-12']]')

이 문제를 해결하는 방법에 대한 제안이 있습니까? 감사!

GMB

를 사용 jsonb_array_elements하여 배열 중첩을 해제 한 다음 검색된 키 중 하나 이상이 있는지 확인할 수 있습니다.

select enrollment_info
from users,
jsonb_array_elements(enrollment_info) courses
where 
    courses->'courses'->'course-1' is not null
    or courses->'courses'->'course-12' is not null

DB Fiddle 데모 :

with users as (
    select 
    '[ 
        { "courses": { "course-1": { "graduated": false }, "course-5": { "graduated": true } }},
        { "courses": { "course-6": { "graduated": false } } }
    ]'::jsonb enrollment_info
    union all select 
    '[ 
        { "courses": { "course-12": { "graduated": false }, "course-5": { "graduated": true } }}
    ]'::jsonb
    union all select 
    '[ 
        { "courses": { "course-4": { "graduated": false } }}
    ]'::jsonb
)
select enrollment_info
from users,
jsonb_array_elements(enrollment_info) courses
where 
    courses->'courses'->'course-1' is not null
    or courses->'courses'->'course-12' is not null
| 등록 정보 | 
| : ------------------------------------------------- -------------------------------------------------- ------------------------------- | 
| [{ "courses": { "course-1": { "graduated": false}, "course-5": { "graduated": true}}}, { "courses": { "course-6": { "졸업": 거짓}}}] | 
| [{ "코스": { "코스 -5": { "졸업": true}, "코스 -12": { "졸업": false}}}] |

처음 두 배열은 각각 course-1을 포함하므로 일치합니다 course-12. 세 번째 배열이 일치하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

중첩 키 값을 기반으로 JSONB 열의 배열 요소를 삭제하는 방법은 무엇입니까?

분류에서Dev

Numpy : 열 중 하나를 기반으로 행렬에서 찾기

분류에서Dev

인덱스를 기반으로 특정 배열 행의 중앙값 얻기

분류에서Dev

인덱스를 기반으로 특정 배열 행의 중앙값 얻기

분류에서Dev

postgresql : 중첩 배열에 새 키를 추가하기 위해 JSONB를 업데이트하는 방법

분류에서Dev

키를 기반으로 중첩 된 사전의 값 수정

분류에서Dev

하나의 키를 기반으로 다중 키 사전의 모든 키 찾기

분류에서Dev

여러 JSONB 열 내의 값을 기반으로 행 필터링

분류에서Dev

clojure 임의로 중첩 된 키 찾기

분류에서Dev

내부 배열 길이를 기준으로 중첩 배열 찾기

분류에서Dev

깊은 중첩 해시 배열의 키 값을 기반으로 해시 배열을 병합하는 방법

분류에서Dev

json to dict, 중첩 열을 기반으로 여러 행 생성?

분류에서Dev

중첩 배열의 합 찾기

분류에서Dev

** TWO ** 키를 기반으로하는 배열에서 중복 행을 제거하고 싶습니다.

분류에서Dev

다른 열의 문자열 데이터를 기반으로 행 번호 찾기

분류에서Dev

중첩 된 객체 배열의 키를 기반으로 객체 배열을 필터링하려면 어떻게해야합니까?

분류에서Dev

행의 값으로 배열 중첩

분류에서Dev

중첩 된 연관 배열 키를 행 번호로 인쇄

분류에서Dev

중첩 된 Json 객체 / 배열을 키를 모르고 동적으로 키를 기반으로 여러 목록으로 변환하는 방법

분류에서Dev

키로 찾기 및 중첩 된 json 객체의 값으로 바꾸기

분류에서Dev

DataTable : 중복 ID를 기반으로 행을 새 열로 이동

분류에서Dev

사전 배열의 공통 키를 기반으로 비율 찾기

분류에서Dev

중첩 된 배열 값 및 고유 개수를 기반으로 문서 일치

분류에서Dev

postgresql의 jsonb 중첩 배열에서 키 값 쌍 제거

분류에서Dev

중첩 배열 필드의 마지막 요소를 기반으로하는 Spring 데이터 MongoDb 쿼리

분류에서Dev

중첩 배열의 값으로 배열에서 개체 찾기 및 제거

분류에서Dev

Pymongo-중첩 된 개체의 타임 스탬프를 기반으로 문서 찾기

분류에서Dev

객체를 기반으로 배열의 중복 정수

분류에서Dev

배열 내부의 날짜를 기반으로 문서 찾기

Related 관련 기사

  1. 1

    중첩 키 값을 기반으로 JSONB 열의 배열 요소를 삭제하는 방법은 무엇입니까?

  2. 2

    Numpy : 열 중 하나를 기반으로 행렬에서 찾기

  3. 3

    인덱스를 기반으로 특정 배열 행의 중앙값 얻기

  4. 4

    인덱스를 기반으로 특정 배열 행의 중앙값 얻기

  5. 5

    postgresql : 중첩 배열에 새 키를 추가하기 위해 JSONB를 업데이트하는 방법

  6. 6

    키를 기반으로 중첩 된 사전의 값 수정

  7. 7

    하나의 키를 기반으로 다중 키 사전의 모든 키 찾기

  8. 8

    여러 JSONB 열 내의 값을 기반으로 행 필터링

  9. 9

    clojure 임의로 중첩 된 키 찾기

  10. 10

    내부 배열 길이를 기준으로 중첩 배열 찾기

  11. 11

    깊은 중첩 해시 배열의 키 값을 기반으로 해시 배열을 병합하는 방법

  12. 12

    json to dict, 중첩 열을 기반으로 여러 행 생성?

  13. 13

    중첩 배열의 합 찾기

  14. 14

    ** TWO ** 키를 기반으로하는 배열에서 중복 행을 제거하고 싶습니다.

  15. 15

    다른 열의 문자열 데이터를 기반으로 행 번호 찾기

  16. 16

    중첩 된 객체 배열의 키를 기반으로 객체 배열을 필터링하려면 어떻게해야합니까?

  17. 17

    행의 값으로 배열 중첩

  18. 18

    중첩 된 연관 배열 키를 행 번호로 인쇄

  19. 19

    중첩 된 Json 객체 / 배열을 키를 모르고 동적으로 키를 기반으로 여러 목록으로 변환하는 방법

  20. 20

    키로 찾기 및 중첩 된 json 객체의 값으로 바꾸기

  21. 21

    DataTable : 중복 ID를 기반으로 행을 새 열로 이동

  22. 22

    사전 배열의 공통 키를 기반으로 비율 찾기

  23. 23

    중첩 된 배열 값 및 고유 개수를 기반으로 문서 일치

  24. 24

    postgresql의 jsonb 중첩 배열에서 키 값 쌍 제거

  25. 25

    중첩 배열 필드의 마지막 요소를 기반으로하는 Spring 데이터 MongoDb 쿼리

  26. 26

    중첩 배열의 값으로 배열에서 개체 찾기 및 제거

  27. 27

    Pymongo-중첩 된 개체의 타임 스탬프를 기반으로 문서 찾기

  28. 28

    객체를 기반으로 배열의 중복 정수

  29. 29

    배열 내부의 날짜를 기반으로 문서 찾기

뜨겁다태그

보관