programing

MySQL GROUP_CONCAT(null 포함)

lastmoon 2023. 7. 31. 21:48
반응형

MySQL GROUP_CONCAT(null 포함)

MySQL의 Group_Concat 함수에 null을 포함시키는 옵션이 있습니까?

소스 테이블의 다음 예를 고려합니다.

userId, questionId, selectionId
7, 3, NULL
7, 4, 1
7, 5, 2

GROUP_CONCAT로 선택 테이블을 쿼리하면 다음과 같은 메시지가 나타납니다.

7, 4=1,5=2

저는 다음을 받고 싶습니다.

7, 3=NULL,4=1,5=2

참고로 제 질문은 다음과 같습니다.

Select userId, GROUP_CONCAT(CONCAT(questionId, '=', selectionId))
From selection
Group by userId;

다음과 같은 IFNULL도 추가해 보았습니다.

Select userId, GROUP_CONCAT(IFNULL(CONCAT(questionId, '=', selectionId), 'NULL'))
From selection
Group by userId;

하지만 그것은 다음과 같은 결과를 낳았습니다.

7, NULL,4=1,5=2

참고 - 포함하는 것을 잊어버린 또 다른 복잡성이 있습니다.selectionId는 다른 테이블에 대한 외부 키입니다.selection_text 테이블의 왼쪽 외부 조인을 사용합니다.실제 쿼리에는 해당 테이블의 필드가 포함됩니다(selectionId가 null이므로 이 필드는 NULL로 확인됨).

당신은 그냥IFNULL될 수 있는 열NULL;

SELECT userId, GROUP_CONCAT(CONCAT(questionId, '=', 
                 IFNULL(selectionId, 'NULL')))
FROM selection
GROUP BY userId;

여기서 데모.

사용해야 합니다.IFNULL또는COALESCE에서selectionId직접 값을 매깁니다.

SELECT
  userId,
  GROUP_CONCAT(CONCAT(questionId, '=', COALESCE(selectionId, 'NULL')))
FROM selection
GROUP BY userId;

언급URL : https://stackoverflow.com/questions/10336022/mysql-group-concat-with-nulls

반응형