-
mysql 동적컬럼 병렬 처리개발/dbms 2016. 1. 29. 09:38
SET @sql = NULL; SELECT GROUP_CONCAT( CONCAT( 'max(case when col = ''', col, ''' then value end) as `', col, '`') ) INTO @sql FROM ( select concat('order', `order`) col from tableA union all select concat('item', `item`) col from tableA )d; SET @sql = CONCAT('SELECT id, ', @sql, ' from ( select id, concat(''order'', `order`) col, data value from tableA union all select id, concat(''item'', item) col, price value from tableA ) d group by id'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
제일처음 시작되는 GROUP_CONCAT
부분에서 concat 으로 select 절에 필요한 필드를 만든다.
다음 @sql 을 전에 @sql 에서 담은 필드명으로 검색해준다.
그리고 마지막에 PREPARE , EXECUTE , DEALLOCATE PREPARE 로 실행시킴..
X BATIS 에서 한번에 쿼리를 보내려면
jdbc:mysql://디비서버/스키마?allowMultiQueries=true
추가해주어야한다.
'개발 > dbms' 카테고리의 다른 글
오라클 처음 설치후 접속시 ORA-28009 : connection as SYS should be as SYSDBA or SYSOPER 에러 (0) 2016.02.29 MYSQL BROB 에서 TEXT 로 변경하기 (0) 2016.01.29 오라클 날짜변환 우변 변환시키기 (0) 2016.01.22 mysql 특정 문자열 split 으로 여러개 로우 추출 (0) 2016.01.08 오라클 날짜연산 (0) 2015.12.22