본문 바로가기
MySQL MariaDB/SQL 문법

MySQL / MariaDB 구분자 기준으로 여러 row로 추출.

by 쑤- IT, MySQL, MariaDB, DBeaver 2021. 10. 14.

MySQL / MariaDB

하나의 로우에 있는 값에 있는 구분자를 기준으로 

여러개 row로 추출한다.

 

 

SELECT
SUBSTRING_INDEX (SUBSTRING_INDEX (테이블명.컬럼영, '구분자', numbers.n), '구분자', -1) 컬럼명
FROM
(
SELECT 1 n  UNION ALL 
SELECT  2  UNION ALL 
SELECT  3  UNION ALL 
SELECT  4  UNION ALL
SELECT 5   UNION ALL
SELECT 6   UNION ALL
SELECT 7  ) numbers
INNER JOIN 테이블명
    ON  CHAR_LENGTH ( 테이블명 . 컬럼영 ) 
        - CHAR_LENGTH ( REPLACE ( 테이블명 . 컬럼영 , '구분자' , '' ))>= numbers . n-1 ;

 

 

ex) 구분자 콤마(,) 일때

SELECT
SUBSTRING_INDEX (SUBSTRING_INDEX (table_id. col_nm,  ',',  numbers.n), ',',  -1) col_nm
FROM
(
SELECT 1 n  UNION ALL 
SELECT  2  UNION ALL 
SELECT  3  UNION ALL 
SELECT  4  UNION ALL
SELECT 5   UNION ALL
SELECT 6   UNION ALL
SELECT 7  ) numbers
INNER JOIN table_id
    ON  CHAR_LENGTH ( table_id. col_nm) 
        - CHAR_LENGTH ( REPLACE ( table_id. col_nm, ',' , '' ))>= numbers . n-1 ;

 

 

결과 --------

 

  • before  col_nm 값 :  aaa,bbb,ccc,ddd
  • after    col_nm 값 :  4개 로우로 추출됩니다.

aaa

bbb

ccc

ddd

 

댓글