WORK/DB

MYSQL 에서의 페이징 처리 및 ROWNUM 가져오기

im 수캥이 2018. 1. 16. 16:29

MSSQL 에서는 ROW_NUMBER() OVER() 기능이 있어 편리하지만 MYSQL에서는 이러한 기능이 없다..ㅠㅠ

 

물론 ORACLE 이라면 어디서 검색해봐도 쉽게 나오는 ROW_NUMBER() 기능이 있어 편리하다

 

그래서 MYSQL 에서의 변수선언 기능으로 페이징 처리 SQL문을 작성

 

 

예제 )

 

SELECT

T.*

FROM (

SELECT

CEILING( A.ROWNUM / 10 )  AS PAGE // 1페이지당 조회될 ROW 수 10

FROM (

SELECT

  DEPT_CODE

,  DEPT_NAME

, @RNUM := @RNUM + 1 AS ROWNUM

 

FROM DEPARTMANT

    ,(SELECT @RNUM := 0 ) AS R // 요 줄을 JOIN문 처럼 FROM절 끝에 넣어준다

) A

    ) T

  

WHERE T.PAGE = 1