본문 바로가기

DataBase

MariaDB(mysql), oracle rownum을 이용한 페이징 방법

MariaDB(mysql)은 rownum ROWNUM을 지원하지 않기 때문에 @를 통해 변수를 생성하여 사용합니다

 

select *
from(
	select
    	@rownum:=@rownum+1 rnum,
        A.*
    from
    	table명 A,
        (select @ROWNUM:=0)R
    where 1=1
 )list
 where 1=1
 and rnum <= 10 and rnum > 0

 

 

oracle은 rownum을 지원하기 때문에 rownum 변수를 생성하지 않고 사용하면 됩니다.

 

SELECT ROWNUM as rnum
     , A.*
  FROM ( SELECT a.*
           FROM table명 a
       ) A
 where 1=1
 and rnum <= 10 and rnum > 0

 

혹은 Row_number() 함수를 활용해서 페이징을 하기도 합니다.

 

SELECT ROW_NUMBER() OVER(ORDER BY a.job, a.ename) row_num
     , a.*
  FROM emp a
 ORDER BY a.job, a.ename