[MYSQL] SQL 변수처리 ( :=)
- 카테고리 없음
- 2021. 1. 11.
SQL 변수처리
SELECT @RNUM:= @RNUM +1 AS RNUM, T1.* FROM abc T1, (SELECT @RNUM := 0) R;
SQL문에서 뜬금없는 컬럼이 등장했다.
@이다.
abc Table에는 RNUM이 없다. 그러나 이는 잘못된 SQL문이 아니다.
@은 변수지정을 뜻한다.
@RNUM 은 RNUM이란 변수를 선언과 := 현재 RNUM의 값에 +1을 한다는 의미를 갖는다.
그러나 이를 단독으로 사용할 경우 RNUM에 대한 초기값이 없기 때문에 값을 알 수 없어 NULL 이 발생한다.
이에 대해 FROM 뒤에 (SELECT @RNUM := 0)이 보이는데,
이는 RNUM의 값의 초기값 지정을 의미한다.
이제 모두 해석하자면 초기값은 0이고, 행을 불러올 때마다 RNUM의 값에 +1을 더해 출력한다는 의미를 가졌다.
따라서 RNUM이라고 지정한 컬럼의 대한 결과값은 이처럼 표시된다.
이에 대한 활용법은 무궁무진하다.
반응형