[SQL] mysql 에서 CONNECT BY 사용하기

eun·2022년 5월 16일
1

SQL

목록 보기
5/8
post-thumbnail

Oracle

SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= 8

>>>
LEVEL
1
2
3
4
5
6
7
8

Mysql

WITH RECURSIVE 구문

  • 메모리 상에 가상의 테이블을 저장
  • 재귀쿼리를 이용하여 실제로 테이블을 생성하거나 데이터 삽입(INSERT) 을 하지 않아도 가상 테이블을 생성할 수 있다.
WITH RECURSIVE 테이블명 AS (

	SELECT 초기값 AS 컬럼별칭
    
    UNION ALL
    
	SELECT 컬럼별칭 계산식
    FROM 테이블명
    WHERE 제어문
    
)

예제)
h(컬럼명)이 초기값 1부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성

WITH RECURSIVE TEMP AS (

	SELECT 1 AS h
    
    UNION ALL
    
    SELECT h+1
    FROM TEMP
    WHERE h<5
    
)
profile
study archive 👩‍💻

0개의 댓글