MySQL에서 반환되는 레코드 수를 제한하는 방법
MySQL 쿼리 결과에서 반환될 레코드의 개수를 지정하고 싶다면 LIMIT 절을 사용하면 됩니다. LIMIT 절은 쿼리가 반환하는 행(row)의 수를 원하는 만큼만 제한해 주는 기능을 합니다.
예를 들어 다음과 같이 가격순으로 정렬된 'ratelist' 테이블이 있다고 가정해 보겠습니다.
mysql> Select * from ratelist ORDER BY Price; +----+------+-------+ | Sr | Item | Price | +----+------+-------+ | 5 | T | 250 | | 1 | A | 502 | | 2 | B | 630 | | 4 | h | 850 | | 3 | C | 1005 | +----+------+-------+ 5 rows in set (0.00 sec)
위 쿼리 결과를 보면 해당 테이블에는 총 5개의 행이 저장되어 있습니다. 만약 이 중에서 가격이 낮은 상위 3개 행만 조회하고 싶다면, 쿼리 끝에 LIMIT 절을 추가하면 됩니다.
mysql> Select * from ratelist ORDER BY Price LIMIT 3; +----+------+-------+ | Sr | Item | Price | +----+------+-------+ | 5 | T | 250 | | 1 | A | 502 | | 2 | B | 630 | +----+------+-------+ 3 rows in set (0.00 sec)
LIMIT 절 사용 시 참고 사항
LIMIT 절은 보통 ORDER BY 절과 함께 사용하는 것이 좋습니다. ORDER BY 없이 LIMIT을 사용하면 어떤 행이 먼저 반환될지 보장할 수 없기 때문에, 특정 기준(예: 가격, 날짜 등)에 따른 상위 N개의 데이터를 얻으려면 반드시 정렬 조건을 함께 지정해야 합니다.
또한 LIMIT 절은 오프셋(offset)을 활용해 특정 위치부터 일정 개수의 행을 가져오는 것도 가능합니다. 예를 들어 LIMIT 2, 3처럼 작성하면 세 번째 행부터 세 개의 행을 반환합니다. 이러한 특성 덕분에 LIMIT 절은 웹 게시판의 페이지네이션(pagination) 구현에도 널리 활용됩니다.