DB/SQL
[MySQL] WITH 재귀(RECURSIVE) 쿼리 계층 구조
꼬바리
2022. 6. 3. 15:58
주의 !! 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;
※ 결과 확인
728x90
반응형