MariaDB에서 MySQL의 JSONOBJECTAGG()와 동등한 방법이 있습니까?
데이터 프로젝트를 위해 작업하던 서버가 다운되어 데이터베이스를 다시 만들고 있습니다.MySQL 데이터베이스를 사용하다가 지금은 MariaDB를 사용하고 있습니다.MariaDB를 사용한 적이 없습니다.
이전에는 다음 명령을 사용하여 몇 가지 데이터를 다른 테이블에서 다른 테이블로 삽입했습니다.
CREATE TABLE collaborators_list
SELECT awards.id, awards.researcher_name, awards.organization_id,
JSON_OBJECTAGG(awards.fiscal_year, coapplicants.coapplicant_name,
coapplicants.organization_number)
AS 'coapplicants_list' FROM awards
INNER JOIN coapplicants
ON awards.id=coapplicants.id
GROUP BY awards.researcher_name, awards.organization_id;
기본적으로 MariaDB에서도 같은 작업을 수행할 수 있습니다.https://mariadb.com/kb/en/library/json-functions/을 찾아보려고 했는데, 제가 잘못 읽고 있는 것이 아니라면, 이것들 중 어느 것도 제가 정말 원하는 것이 아닙니다.
도와주세요!
아니요, MariaDB는 아직 지원하지 않습니다.JSON_ARRAYAGG
그리고.JSON_OBJECTAGG
기능들.다음 기능을 요청하기 위해 JIRA 티켓이 발행되었습니다.https://jira.mariadb.org/browse/MDEV-16620
다음으로 의 문서를 참조해 주십시오.
두 개의 열 이름 또는 식을 인수로 사용합니다.첫 번째 열 이름 또는 식은 키로 사용되고 두 번째 열 이름은 값으로 사용됩니다.
키 이름이 NULL이거나 인수 수가 2가 아닌 경우 오류가 발생합니다.
단, 다음과 같은 세 가지 인수를 지정하고 있습니다.JSON_OBJECTAGG(awards.fiscal_year, coapplicants.coapplicant_name, coapplicants.organization_number)
;그러면시도된쿼리도실행되지않습니다.
필요한 함수가 없는 경우 를 사용할 수 있습니다.앞의 단락에서 설명한 바와 같이 첫 번째 두 개의 인수만 필요할 것으로 예상됩니다.
GROUP_CONCAT( DISTINCT CONCAT('"', awards.fiscal_year, '": "',
coapplicants.coapplicant_name, '"')
SEPARATOR ', ')
문자열이 매우 길어질 경우 Group_Concat()에 의해 문자열이 잘릴 수 있습니다.따라서 위의 쿼리 전에 다음 쿼리를 실행하여 허용되는 길이를 늘릴 수 있습니다.
SET SESSION group_concat_max_len = @@max_allowed_packet;
언급URL : https://stackoverflow.com/questions/53236872/is-there-an-equivalent-way-to-do-mysqls-jsonobjectagg-in-mariadb
'programing' 카테고리의 다른 글
View의 getWidth() 및 getHeight()는 0을 반환합니다. (0) | 2022.10.21 |
---|---|
MongoDB vs MySQL (0) | 2022.10.21 |
EC2 인스턴스에서 RDS 인스턴스에 연결할 수 없습니다. (0) | 2022.10.21 |
SQL에서 매일 트리거를 동시에 실행하는 방법 (0) | 2022.10.21 |
Panda GroupBy를 사용하여 각 그룹(수, 평균 등)에 대한 통계를 얻으시겠습니까? (0) | 2022.10.21 |