-
[MySQL] oracle에 rownum() 기능을 MySQL 에서 사용하기(LIMIT)case Computer : 2009. 7. 11. 10:10오라클에는 rownum() 이라는 편리한 기능이 있다.
ROWNUM은 오라클 데이터베이스가 제공하는 마술과도 같은 컬럼입니다. 이 때문에 많은 사용자들이 문제를 겪기도 합니다. 하지만 그 원리와 활용 방법을 이해한다면 매우 유용하게 사용할 수 있습니다. 필자는 주로 두 가지 목적으로 ROWNUM을 사용합니다.
- Top-N 프로세싱: 이 기능은 다른 일부 데이터베이스가 제공하는 LIMIT 구문과 유사합니다.
- 쿼리 내에서의 페이지네이션(pagination) – 특히 웹과 같은 "stateless" 환경에서 자주 활용됩니다. 필자는 asktom.oracle.com 웹 사이트에서도 이 테크닉을 사용하고 있습니다.
ROWNUM은 쿼리 내에서 사용 가능한 (실제 컬럼이 아닌) 가상 컬럼(pseudocolumn)입니다. ROWNUM에는 숫자 1, 2, 3, 4, ... N의 값이 할당됩니다. 여기서 N 은 ROWNUM과 함께 사용하는 로우의 수를 의미합니다.
MySQL에도 비슷하게 사용할수 있는 구분이 있다.
바로 limit이다.
사용법
mysql > desc user;
|Field | Type |
|num | int(11) |
|name | varchar(20) |
mysql select * from user order by num;
| 1 | kim |
| 2 | park |
| 3 | lee |
| 4 | choi |
| 5 | sin |
| 6 | tim |
mysql>select * from user order by num limit 0, 2;
| 1 | kim |
| 2 | park |
mysql>select * from user order by num limit 0, 4;
| 1 | kim |
| 2 | park |
| 3 | lee |
| 4 | choi |
mysql>select * from user order by num limit 3, 2;
| 3 | lee |
| 4 | choi |
위에 예를 보면 대충 감이 올것이다.
limit a, b
해석하면 a번째 부터 b개를 가져온다
반응형'case Computer :' 카테고리의 다른 글
인터넷 보안 산업 (1) 2009.08.23 [JavaScript] 키보드 / 입력 값 필터링 (0) 2009.07.26 [JSP] Multipart File Upload (0) 2009.07.08 [Windows] batch file programming tip (0) 2009.07.06 [Batch] batch programming (0) 2009.07.06