LIMIT x, y
- y개 만큼의 행을 반환하되, 처음 x개의 행을 건너뜀
SELECT * FROM BOARD LIMIT 5, 10;
BOARD 테이블에서 5개 행을 건너뛰고 10개의 행을 반환
결과적으로 6번째부터 15번째까지의 행이 반환
LIMIT x OFFSET y
- y개 만큼의 행을 건너뛰고, 다음 x개의 행을 반환
- OFFSET은 행을 건너뛰는 수를 명확하게 지정하는 역할
SELECT * FROM BOARD LIMIT 5 OFFSET 10;
BOARD 테이블에서 10개 행을 건너뛰고 5개의 행을 반환
결과적으로 11번째부터 15번째까지의 행이 반환
표기법: LIMIT x, y는 y가 반환할 행의 수로 해석되며, LIMIT x OFFSET y는 y가 건너뛸 행의 수로 해석
<LIMIT을 활용한 쿼리문>
//(페이지 네이션) 암벽장 전체출력
private String ALL = "SELECT \r\n"
+ " GYM_NUM, \r\n"
+ " GYM_NAME, \r\n"
+ " GYM_PROFILE, \r\n"
+ " GYM_DESCRIPTION, \r\n"
+ " GYM_LOCATION, \r\n"
+ " GYM_RESERVATION_CNT, \r\n"
+ " GYM_PRICE, \r\n"
+ " BATTLE_NUM, \r\n"
+ " BATTLE_GAME_DATE\r\n"
+ "FROM (\r\n"
+ " SELECT \r\n"
+ " G.GYM_NUM, \r\n"
+ " G.GYM_NAME, \r\n"
+ " G.GYM_PROFILE, \r\n"
+ " G.GYM_DESCRIPTION, \r\n"
+ " G.GYM_LOCATION, \r\n"
+ " G.GYM_RESERVATION_CNT, \r\n"
+ " G.GYM_PRICE, \r\n"
+ " B.BATTLE_NUM, \r\n"
+ " B.BATTLE_GAME_DATE,\r\n"
+ " ROW_NUMBER() OVER (PARTITION BY G.GYM_NAME ORDER BY G.GYM_NUM) AS RN_G," // GYM_NAME별로 순번 부여\r\n
+ " ROW_NUMBER() OVER (ORDER BY G.GYM_NUM) AS ROW_INDEX\r\n"
+ " FROM \r\n"
+ " GYM G\r\n"
+ " LEFT JOIN \r\n"
+ " BATTLE B ON G.GYM_NUM = B.BATTLE_GYM_NUM\r\n"
+ ") AS GYM_BATTLE_CTE\r\n"
+ "WHERE RN_G = 1\r\n"
+ "ORDER BY GYM_NUM\r\n"
+ "LIMIT X, Y"; // X,Y는 시작 인덱스와 행 수를 위한 자리 표시자입니다.
<LIMIT과 OFFSET을 활용한 쿼리문>
//(페이지 네이션) 암벽장 전체출력
private String ALL = "SELECT \r\n"
+ " GYM_NUM, \r\n"
+ " GYM_NAME, \r\n"
+ " GYM_PROFILE, \r\n"
+ " GYM_DESCRIPTION, \r\n"
+ " GYM_LOCATION, \r\n"
+ " GYM_RESERVATION_CNT, \r\n"
+ " GYM_PRICE, \r\n"
+ " BATTLE_NUM, \r\n"
+ " BATTLE_GAME_DATE\r\n"
+ "FROM (\r\n"
+ " SELECT \r\n"
+ " G.GYM_NUM, \r\n"
+ " G.GYM_NAME, \r\n"
+ " G.GYM_PROFILE, \r\n"
+ " G.GYM_DESCRIPTION, \r\n"
+ " G.GYM_LOCATION, \r\n"
+ " G.GYM_RESERVATION_CNT, \r\n"
+ " G.GYM_PRICE, \r\n"
+ " B.BATTLE_NUM, \r\n"
+ " B.BATTLE_GAME_DATE,\r\n"
+ " ROW_NUMBER() OVER (PARTITION BY G.GYM_NAME ORDER BY G.GYM_NUM) AS RN_G," // GYM_NAME별로 순번 부여\r\n
+ " ROW_NUMBER() OVER (ORDER BY G.GYM_NUM) AS ROW_INDEX\r\n"
+ " FROM \r\n"
+ " GYM G\r\n"
+ " LEFT JOIN \r\n"
+ " BATTLE B ON G.GYM_NUM = B.BATTLE_GYM_NUM\r\n"
+ ") AS GYM_BATTLE_CTE\r\n"
+ "WHERE RN_G = 1\r\n"
+ "ORDER BY GYM_NUM\r\n"
+ "LIMIT Y OFFSET X"; // Y,X는 시작 인덱스와 행 수를 위한 자리 표시자입니다.
2024.10.07
'SQL(MySQL)' 카테고리의 다른 글
| [MySQL] 01-2. SQLines를 이용한 마이그레이션 시 유의 사항 (0) | 2024.10.07 |
|---|---|
| [MySQL] 01-1. Oracle과 MySQL의 쿼리문 차이 (0) | 2024.10.03 |
| [MySQL] 01. Oracle에서 MySQL로 마이그레이션 (2) | 2024.10.02 |
| [MySQL] 00. MySQL 설치 (1) | 2024.09.30 |