본문 바로가기

데이터베이스/관계형(RDB)

[MySQL] ROWNUM을 사용하여 번호매기기




MySQL에서 Oracle처럼 ROWNUM 사용법




SET구문을 사용하여 ROWNUM 값을 초기화 후 조회


SET @rownum:=0; 


SELECT
@rownum:=@rownum+1, b.*
FROM buyingboard b



WHERE절에서 초기화

SELECT
@rownum:=@rownum+1, b.*
FROM buyingboard b
WHERE (@rownum:=0)=0;



FROM절에서 초기화

SELECT
@rownum:=@rownum+1, b.*
FROM buyingboard b, (SELECT @rownum:=0) TMP;


모두 결과가 아래와 같이 나온다.



But 초기화를 시키지 않을 경우 조회 할 때마다 번호가 바뀌게 된다.





ORDER BY 를 사용할 경우 (SELEC를 한번 더!)

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