MariaDB의 표준 테이블에 데이터를 저장하고 있지만 관련 테이블의 레코드를 JSON 문자열로 반환하고 싶습니다. 내가 할 의도가 무엇여러 개의 COLUMN_JSON 결과를 JSON 배열로 반환
내가 exerciseId
전달할 수 있고, 함수가 자식 테이블에서 중첩 된 데이터를 포함 할 수있는 저장된 프로 시저에 의해 반환 된 각 exercise
기록을 의미하는 모든 관련 exerciseMuscle
레코드 JSON 문자열을 반환 어디 기능을 가지고있다.
COLUMN_JSON
과 COLUMN_CREATE
을 사용하여 JSON 레코드를 만들 수 있었지만 필요에 따라 JSON 값 배열보다는 개별 레코드 세트로 반환 할 수 있습니다. 내가 사용하고있어 SQL은 다음과 같습니다
select
e.id,
CONVERT(COLUMN_JSON(COLUMN_CREATE(
'role', em.muscleRoleName,
'muscle', em.muscleName
)) USING utf8) as musclesJson
from
exercise e
inner join exerciseMuscle em
on e.id = em.exerciseId
where
e.id = 96;
이 반환
| id | musclesJson
| 96 | {"role":"main","muscle":"biceps"}
| 96 | {"role":"secondary","muscle":"shoulders"}
내가 원하는 것은 경우 :
| id | musclesJson
| 96 | [{"role":"main","muscle":"biceps"},{"role":"secondary","muscle":"shoulders"}]
그것이 가능하지 않고 한 행에 여러 개의 결과를 반환 결과를 반복하고 수동으로 빌드 하시겠습니까? SQL에 group by
을 추가하면 JSON은 첫 번째 레코드 만 포함합니다.
당신이 사용하고있는 MySQL의 버전? – Dez
MariaDB 10.0.24, 방금 변경된 태그 – CrazyHorse