본문 바로가기

MySQL

WITH 재귀 쿼리

 

WITH RECURSIVE 문

 

WITH 구문은 메모리 상에 가상의 테이블을 저장할 때 사용된다.

RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 한다.

RECURSIVE는 자기 자신을 참조하기 때문에 재귀 쿼리라고 불린다.

 

 

쿼리 예)

 

WITH RECURSIVE HOURS AS (
    SELECT 0 AS HOUR1    -- 비반복문 무조건 필수 
    UNION ALL			-- RECURSIVE 사용 시 필수, 다음에 이어붙어야 할 때 사용
    SELECT HOUR1 + 1 FROM HOURS 
    WHERE HOUR1<23	-- RECURSIVE 사용 시 필수, 정지 조건 필요할때 사용
)