오라클을 사용할때는 어렵게 구현 했던것을 MySQL을 사용하면서 아주 쉽게 구현이 가능했다.
Row Data:+-----------+----------+ | colHeader | value | +-----------+----------+ | Header1 | value 1 | +-----------+----------+ | Header2 | value 2 | +-----------+----------+ | Header3 | value 3 | +-----------+----------+Output:
+-----------+-----------+-----------+ | Header1 | header2 | Header3 | +-----------+-----------+-----------+ | Value 1 | value 2 | Value 3 | +-----------+-----------+-----------+방법1 원시적인 방법이며, 조회속도 자체가 느리다.
SELECT t1.value AS `Header1`, t2.value AS `Header2`, t3.value AS `Header3` FROM (SELECT * FROM table1 WHERE colHeader='Header1') t1 JOIN (SELECT * FROM table1 WHERE colHeader='Header2') t2 JOIN (SELECT * FROM table1 WHERE colHeader='Header3') t3;방법2 깔끔하게 해결 된다.
SELECT ID, GROUP_CONCAT(if(colHeader = 'Header 1', value, NULL)) AS 'Header 1', GROUP_CONCAT(if(colHeader = 'Header 2', value, NULL)) AS 'Header 2', GROUP_CONCAT(if(colHeader = 'Header 3', value, NULL)) AS 'Header 3' FROM myTable GROUP BY ID;
'프로그래밍 > mysql' 카테고리의 다른 글
[MYSQL] CASE 사용법 (0) | 2019.03.21 |
---|---|
[MYSQL] explain 처럼 자르기 (0) | 2019.03.21 |
[MYSQL] 날짜관련 (0) | 2019.03.21 |
[MYSQL] Replication 관리방법 (0) | 2019.03.21 |
[MYSQL] UPDATE 병렬처리 방법 (0) | 2019.03.21 |