programing

MariaDB 쿼리 열을 JSON으로 변환

procenter 2023. 1. 3. 22:30
반응형

MariaDB 쿼리 열을 JSON으로 변환

저는 한동안 서클을 돌았지만, 이용 가능한 JSON 기능을 사용하여 이 문제에 어떻게 대처해야 할지 잘 모르겠습니다.아이템명과 플레이어 ID의 카운트가 기재된 데이터베이스 테이블이 있으며, 이 레코드 세트를 아이템명으로 키 입력된 단일 json 오브젝트로 표현하고 싶습니다.테이블 데이터는 다음과 같습니다.

여기에 이미지 설명 입력

제작하고 싶은 구조는 다음과 같습니다.

{
  "WEAPON_PETROLCAN":1,
  "water":1,
  "bandage":2,
  "WEAPON_PISTOL":1
}

이것이 나의 출발점입니다.

SELECT *
FROM addon_inventory_items 

WHERE inventory_name ='property'
  AND owner LIKE 'license:ee7d%';

JSON_INSERT를 미리 정의된 @json 변수와 함께 사용해 보았지만 올바르게 형성되지 않았습니다.이거 할 줄 아는 사람?내 dbms 버전은 10.5.8입니다.

배경은 업데이트 및 삽입 트리거가 각 경우에 응답하도록 하는 것입니다. 플레이어의 속성 인벤토리 상태의 스냅샷을 만든 다음 타임스탬프와 함께 이력 감사 테이블에 저장할 수 있습니다.이 json 개체를 변수로 캡처하여 다음 INSERT 문에서 사용합니다.

이것은 기능을 사용하면 매우 쉽게 달성할 수 있습니다.사용하려면 MariaDB 버전이 10.5.0 이상이어야 합니다.

MySQL을 사용하는 경우 5.7과 8.0 모두 지원합니다.참고 자료: https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_json-objectagg

즉, 다음과 같이 표시됩니다.

SELECT owner, JSON_OBJECTAGG(name, count)
FROM addon_inventory_items 

WHERE inventory_name ='property'
  AND owner LIKE 'license:ee7d%'
GROUP BY owner

언급URL : https://stackoverflow.com/questions/66513116/mariadb-query-columns-into-json

반응형