카테고리 없음

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 부분을 수정하면 된다.