[MySQL] WITH 재귀(RECURSIVE) 쿼리 계층구조

2020. 7. 20. 15:02DataBase/MySQL

반응형

주의 !! mysql 5.7 이하 미지원

 WITH RECURSIVE 문

  • 메모리 상에 가상의 테이블을 저장
  • 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터삽입(INSERT)을 하지 않아도 가상 테이블을 생성할 수 있다.
WITH RECURSIVE 테이블명 AS(
  SELECT 초기값 AS 컬럼별명1
  UNION ALL
  SELECT 컬럼별명1 계산식 FROM 테이블명 WHERE 제어문
 )
반응형

 예시

h(컬럼)이 초기값 1 부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성
WITH RECURSIVE CTE AS(
  SELECT 1 AS h
  UNION ALL
  SELECT h+1 FROM CTE WHERE h<5
)

SELECT * FROM CTE;
반응형

※ 결과 확인

반응형