programing

JSON 데이터 유형 postgres별 순서

magicmemo 2023. 3. 17. 20:31
반응형

JSON 데이터 유형 postgres별 순서

Postgres 테이블에는 JSON 타입의 컬럼이 있습니다.이 컬럼에는 JSON 오브젝트가 많이 포함되어 있습니다.테이블 레코드를 조회하여 JSON 필드에 저장된 값으로 결과를 정렬하고 싶습니다.실행할 쿼리를 가져오고 있지만 올바르게 정렬되지 않습니다.JSON 필드 타입의 오더에 관한 문서가 많이 없기 때문에 누군가 이것을 발견해 주었으면 합니다.

data: {name: "stuff", value: "third option"}
data: {name: "stuff", value: "awesome stuff"}
data: {name: "stuff", value: "way cooler stuff"}

다음 SQL이 실행되지만 결과는 순서 없이 반환됩니다.

select * from table ORDER BY data->>'value asc' 

레일을 사용하고 있지만 SQL을 직접 실행해 보고 같은 결과를 얻습니다.

당신이 넣었어요asc필드명으로 입력합니다.라는 이름의 열쇠는 없습니다.value asc그러니까...data ->> 'value asc'항상 돌아온다NULL.

실제로 원하는 것은 다음과 같습니다.

select * from table ORDER BY data->>'value' ASC 

json을 일치시키는 경우, 다음과 같은 경우가 있습니다.

select * 
from table 
WHERE data ->> 'name' = 'stuff'
ORDER BY data->>'value' ASC 

사용하다->대신->>(->>는 JSON 오브젝트필드를 텍스트로 가져옵니다).

select * from my_table ORDER BY data->'some_number' asc; 

시험:

ORDER BY cast(data->>'value' as integer) ASC

언급URL : https://stackoverflow.com/questions/25967778/order-by-json-data-type-postgres

반응형