본문 바로가기
데이터베이스/MySQL

mysql rownum 구현하기

by o테리o 2013. 5. 3.

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부터 순서대로 부여된다.

 

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