[MySQL] mysql dynamic rows to columns (세로를 가로로 출력)
페이지 정보
작성자 서방님 댓글 0건 조회 219회 작성일 17-04-17 09:33본문
event_form
event_users
위와 같이 두 테이블이 있을때, 세로를 가로로 출력하고 싶을 때
SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(title = ''', title, ''', answer, NULL)) AS ', title ) ) INTO @sql FROM event_users; SET @sql = CONCAT('SELECT event_number, answer_id, ', @sql, ' FROM event_users GROUP BY event_number'); PREPARE stmt FROM @SQL; EXECUTE stmt; DEALLOCATE PREPARE stmt; | cs |
위와 같은 쿼리를 수행하게 되면
event_number를 중심으로 원하는 값만(event_number answer_id, @sql) 출력한다.
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(title = ''',
title,
''', answer, NULL)) AS ',
title
)
) INTO @sql
FROM event_users;
@sql은 위와같으므로 title 개수 만큼 필드를 출력 (위의 테이블 경우엔 4개 - (1번,2번,3번,4번) )
댓글목록
등록된 댓글이 없습니다.