본문 바로가기
Back-end/DB

[MySQL] LIMIT, OFFSET - 페이징시 쿼리

by 며루치꽃 2021. 5. 21.

전문적인 정보를 다루는 것이 아닌 개인적으로 학습한 내용에 대해

포스팅을 했기 때문에 이점을 감안하여 봐주시면 감사하겠습니다👏

 

결과 제한하기

SELECT 문은 지정한 테이블에서 일치하는 모든 행을 가져온다. 만약 첫번째 행이나 특정 몇 행만 가져오고 싶다면, LIMIT OFFSET을 사용하면 됩니다.

 

아래의 구문을 사용하여 일치하는 모든 행을 가져왔을 때의 결과는 다음과 같습니다. 

SELECT prod_name
FROM Products;

Limit 단어는 ‘한계’, ‘한도’ 라는 단어 뜻을 갖고 있다. MySQL 데이터베이스 Select 문장에서 Limit 키워드를 사용하면 테이블 데이터 조회 시 결과를 제한할 수 있습니다.

SELECT 조회할 컬럼명

FROM 테이블명

LIMIT 숫자

 

형태로 다음과 같은 예시를 이용하면 아래의 결과를 얻을 수 있습니다.

SELECT prod_name
FROM products
LIMIT 5;

 

페이징시 쿼리 - OFFSET 이용

 

또한 LIMIT, OFFSET 키워드를 이용하여 몇 번째 부터 몇 개의 행을 가져올지 명시할 수 있습니다.

 

SELECT 조회할 컬럼명

FROM 테이블명

LIMIT 숫자A OFFSET 숫자B

 

LIMIT 숫자 : 몇개의 행

OFFSET 숫자 : 몇번째 행부터 가져올 것인지. (1번째 row면 0)

 

OFFSET 사용시 주의해야할 점 

0번째 행

처음 가져온 행은 0번째 행이다. 그래서 LIMIT 1 OFFSET 1은 첫 번째 행이 아닌 두번쨰 행을 가져온다

SELECT prod_name
FROM products
LIMIT 5 OFFSET 5;

이렇게 되면 5번째 행부터 5개 행을 가져오라고 지시하는 것이다. 

위와 같은 결과를 OFFSET 키워드를 사용하지 않고, ',' 를 이용해서 다음과 같이 적용할 수도 있습니다.

 

SELECT 조회할 컬럼명

FROM 테이블명

LIMIT 숫자A, 숫자B

SELECT prod_name
FROM products
LIMIT 5, 5;

이렇게 되면 위과 같은 결과로 5번째 행부터 5개 행을 가져오라고 지시하는 것입니다. 

전체 행을 선택하는 쿼리에서 6번째부터 9번째까지 행이 출력되는 것을 확인할 수 있습니다

 

댓글