MySQL에서 Oracle처럼 ROWNUM 사용법
SET구문을 사용하여 ROWNUM 값을 초기화 후 조회
1 2 3 4 5 6 7 | <! --초기화 후 --> SET @rownum:=0; <! --조회 --> SELECT @rownum:=@rownum+1, b.* FROM buyingboard b |
WHERE절에서 초기화
1 2 3 4 | SELECT @rownum:=@rownum+1, b.* FROM buyingboard b WHERE (@rownum:=0)=0; |
FROM절에서 초기화
1 2 3 | SELECT @rownum:=@rownum+1, b.* FROM buyingboard b, ( SELECT @rownum:=0) TMP; |
모두 결과가 아래와 같이 나온다.
But 초기화를 시키지 않을 경우 조회 할 때마다 번호가 바뀌게 된다.
ORDER BY 를 사용할 경우 (SELEC를 한번 더!)
1 2 3 | SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, A.* FROM ( SELECT * FROM buyingboard ORDER BY bno DESC ) A, ( SELECT @ROWNUM := 0 ) B |
JOIN문을 사용할 경우
① (SELECT @rownum:=0) TMP;를 JOIN문 아래에 추가
② INNER JOIN 사용 - INNER JOIN (SELECT @rownum:=0) T2