카테고리 없음
MySQL에서 VO 생성 쿼리
겸둥선짱
2022. 3. 8. 13:21
MySql에서 VO를 생성하는 쿼리이다.
SELECT
CONCAT(', ', COL) AS 'A'
,CONCAT('private ', RPAD(concat(CASE WHEN DATA_TYPE = 'timestamp' THEN 'Timestamp ' ELSE 'String ' END, GENERATOR_COL,';'), 20, ' ' ), ' //' , IFNULL(COLUMN_COMMENT, ''))AS 'B'
,CONCAT(', #{', GENERATOR_COL,'}')AS 'C'
,CONCAT(', ', GENERATOR_COL) AS 'D'
,CONCAT(' //', IFNULL(COLUMN_COMMENT, '')) AS 'E'
FROM
(
SELECT COL,
CASE WHEN COL1 ='' THEN '_id'
ELSE CONCAT(LOWER(COL1),UPPER(SUBSTR(COL2, 1, 1)),LOWER(SUBSTR(COL2, 2)),UPPER(SUBSTR(COL3, 1, 1)),LOWER(SUBSTR(COL3, 2)),UPPER(SUBSTR(COL4, 1, 1)),LOWER(SUBSTR(COL4, 2)))
END GENERATOR_COL, COLUMN_COMMENT, DATA_TYPE
FROM
(
SELECT replace(substring(substring_index(COL,'_', 1), length(substring_index(COL,'_', 1 - 1)) + 1),'_','')AS COL1,
replace(substring(substring_index(COL,'_', 2), length(substring_index(COL,'_', 2 - 1)) + 1),'_','')AS COL2,
replace(substring(substring_index(COL,'_', 3), length(substring_index(COL,'_', 3 - 1)) + 1),'_','')AS COL3,
replace(substring(substring_index(COL,'_', 4), length(substring_index(COL,'_', 4 - 1)) + 1),'_','')AS COL4,
COL, COLUMN_COMMENT, DATA_TYPE
FROM ( SELECT
COLUMN_NAME AS COL
, COLUMN_COMMENT
, DATA_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = :table
) AS X
)AS Y
)AS Z;
테이블 명을 :table 부분에 입력한 후
본인이 출력하고 싶은대로 최상단의 쿼리에서 CONCAT 부분을 수정하면 된다.