순간을 기록으로

[MySQL] WHERE로 행 제한이 아닌 'LIMIT'으로 결과 행 제한하기 본문

Computer Science/Database

[MySQL] WHERE로 행 제한이 아닌 'LIMIT'으로 결과 행 제한하기

luminous13 2021. 11. 11. 16:33

'WHERE'구를 사용하면 전체 행이 아닌 조건에 맞는 제한된 행을 얻을 수 있습니다. 하지만 이와는 다르게

'LIMIT' 구를 사용하면 아예 행 수를 제한하여 조회할 수 있습니다.

입력받은 행수만큼 상위의 데이터를 조회합니다.

 

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수;

 

예시 테이블

 

CASE1. 테이블에 있는 상위 3건만 조회하기

 

CASE2. no 열로 내림차순 정렬한 뒤 상위 3건만 검색하기

 


OFFSET 지정하기

웹 페이지를 보면 한 페이지에 모든 아이템들이 나열되있지 않습니다. 보통 10개의 아이템을 보여주고 밑에 목록으로 1, 2, .. 10 처럼 표시되어있습니다. 이럴 때 OFFSET을 사용합니다. OFFSET이란 ~행부터 라는 의미로 데이터를 취득할 위치를 가리킵니다. 기본적으로 LIMIT 뒤에 OFFSET을 명시적으로 작성 안하면 OFFSET 0이 생략된 것으로 볼 수 있습니다.

간단히 '시작할 행 -1' 값을 적어준다고 생각하면 됩니다. 예를들어 6번째 행부터 5건을 취득한다면 '6-1'로 OFFSET 5를 작성한다고 생각하면 됩니다.

 

CASE3. 두 번째 페이지에 올릴 4행부터 3건의 데이터를  검색

 

Comments