select 시 순번(row number) 지정하기

오라클 등의 디비에서는 row_number()를 이용하여 행마다의 순번을 지정할 수 있으나

mysql 에서는 해당 함수가 없다.

대신 아래와 같은 방법을 이용할 수 있다.

set @num:=0;
select @num:=@num+1 as rownum, field1, field2 from {TABLE} [where];


num 이라는 변수를 생성 0으로 초기화 하여 행별값을 증가 시킨다.

해당 변수는 DB 연결상태에서 계속 유지 되므로 다른 쿼리에서 사용시 초기화 해줘야 한다.


select 쿼리문의 where 절에서도 초기화가 가능하다.


select @num:=@num+1 as rownum, field1, field2 from {TABLE} where (@num:=0)=0 [where];





@http://stackoverflow.com/questions/1895110/row-number-in-mysql