ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.