세션변수 : 각 사용자에 대해 로그인 시간에 초기화 되는 변수
oracle에서처럼 rownum을 이용해서 순번을 매겨보려고 했는데
mysql의 여러가지 방법 중 @가 붙은 변수들을 사용하는 것을 볼 수 있었다.
@가 붙은 변수들을 세션변수라고 하며 세션이 종료될 때 까지 사용할 수 있다고 한다.
(@가 붙지 않은 변수들은 전역변수임)
사용예시
1. 검색전에 초기화 하는 방법
1-1. 초기화(세션변수 rownum을 0으로 초기화 하였다.)
set @rownum:=0;
1-2. select @rownum:=@rownum+1 from 테이블명;
2. from절에서 초기화 하는 방법
select @rownum:=@rownum+1
from 테이블명,(SELECT @rownum:=0) test; ;
초기화를 from절에 새 테이블로 붙여줌. 붙여준 서브쿼리에 별칭없으면 오류남
3. where절에서 초기화 하는 방법
select @rownum:=@rownum+1
from 테이블명
where (@rownum:=0) = 0;
※ 1부터 10까지 총 10개의 데이터 가져오기
case1 ) 서브쿼리를 이용
SELECT *
FROM(
select @rownum:=@rownum+1 rownum
FROM 테이블명
WHERE (@rownum:=0) = 0
) A
WHERE A.rownum < 10;
case2 ) mysql에서는 limit를 사용할 수 있다
select @rownum:=@rownum+1 rownum
FROM 테이블명
WHERE (@rownum:=0) = 0
LIMIT 9;
limit 10 => 10개 가져오기
limit 3,10 => (0부터 시작하는 인덱스 기준) 3번부터 10개 추출
이 때 총 추출 갯수는 10개이기 때문에 둘다 1,2,3,4,...10이 출력되게 된다.
'왕초보 개발일지 > 기타' 카테고리의 다른 글
[heidiSQL]null데이터 색칠하기 (1) | 2022.11.03 |
---|---|
[ELK]키바나 (2) | 2022.11.01 |
여러줄 문자 한번에 수정하기. (0) | 2022.10.28 |
Git vs SVN (0) | 2022.10.27 |
여러줄 문자 한번에 수정하기. (0) | 2022.10.27 |
댓글