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

SQLite - LIMIT OFFSET를 활용한 페이징 처리

by Dokon Jang 2021. 4. 23.
반응형

오라클에서는 Inline View와 Rownum을 이용하여 페이징 처리를 합니다.

SQLite는 더 편리하게 Limit Offset을 활용하여 더욱 쉽게 처리 할 수 있습니다.

 

1. 전체 데이터

   - 아래의 쿼리는 특정위치(위도/경도)에서 가까운 순서로 정렬하는 쿼리입니다.

SELECT NAME, LAT, LON FROM SCHOOL_LOC
 ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
        + ABS(LON - 126.9783740) * ABS(LON - 126.9783740)

 

2. LIMIT를 이용한 상위 2개만 얻기

SELECT NAME, LAT, LON FROM SCHOOL_LOC
 ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
        + ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
 LIMIT 2

 

3. LIMIT OFFSET을 이용한 페이지 처리

  - OFFSET은 시작 할 Row의 Index로 LIMIT의 수에 페이지 Index를 곱하면 됩니다.

[첫페이지 쿼리]

SELECT NAME, LAT, LON FROM SCHOOL_LOC
 ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
        + ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
 LIMIT 2 OFFSET 0 * 2

 

[두번째페이지 쿼리]

SELECT NAME, LAT, LON FROM SCHOOL_LOC
 ORDER BY ABS(LAT - 37.5670135) * ABS(LAT - 37.5670135)
        + ABS(LON - 126.9783740) * ABS(LON - 126.9783740)
 LIMIT 2 OFFSET 1 * 2

 

반응형

댓글