레이블이 Serial인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Serial인 게시물을 표시합니다. 모든 게시물 표시

2009년 7월 31일 금요일

mysql rownum 구현하기

mysql을 쓰다보면 oracle 처럼 rownum을 써야하는 경우가 생긴다.

 

혹은, 자동으로 1씩 증가하는 for 문의 변수(주로 integer i)와 같은 형태의

 

컬럼의 쿼리에서 구현하는 것이 편할 때가 있다.

 

주로 ordering이나 grouping 후 순위를 매길 때가 그런 경우인데,

 

그럴 때 쓸 수 있는 rownum이 mysql에도 있다.

 

ex 1 )

SELECT @RNUM := @RNUM + 1 AS ROWNUM

FROM ( SELECT @RNUM := 0 ) R


 

ex 2 )

SELECT @RNUM := @RNUM + 1 AS ROWNUM, t.*

FROM

  (

    SELECT *

    FROM table

    ORDER BY column1

  ) t,

  ( SELECT @RNUM := 0 ) R


ex 2 처럼 구현하게 되면 ordering 된 상태에서 rownum이

 

0부터 순서대로 부여된다.

 

은근히 자주 쓰이는 편리한 방법이다. ^^