[MySQL] 계층형 재귀쿼리 - WITH, WITH RECURSIVE

돈까스전사·2022년 9월 19일
0


WITH 구문은 메모리 상에 가상의 테이블을 생성하여 저장한다. RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 가능하다.

🍔 WITH 구문

-- 테이블 명을 사용하여 값을 참조할 수 있으며, 테이블의 행 수 만큼 반복된다.
WITH DONKKAAS AS (
    SELECT 0 AS NUM
    UNION ALL
    SELECT 0 FROM [TABLE]
)

🍔 WITH RECURSIVE 구문

-- 가상 테이블을 생성하고, 가상 테이블의 값을 참조할 수 있다.
WITH DONKKAAS AS (
    SELECT 0 AS NUM
    UNION ALL
    SELECT NUM+1 FROM DONKKAAS
    WEHRE NUM < 50
)

위 구문을 통해 0부터 50까지의 값을 가진 임시 테이블을 생성할 수 있다.



WITH, WITH RECURSIVE 구문은 MySQL 8.0 이상 버전에서 사용이 가능하다!!!

profile
네이버 지식인 ZIZON

0개의 댓글