복붙노트

[SQL] MySQL의 제한 범위

SQL

MySQL의 제한 범위

SELECT name FROM mydb ORDER BY score DESC LIMIT 10;

쿼리는 위의 첫 번째 열 개 순위를 반환합니다.

어떻게 20 순위를 통해 10 순위를 조회 할 수있는 또 다른 구문이 어쩌면 LIMIT을 수정하거나하는?

해결법

  1. ==============================

    1.이건 정말 기본적인 것들이다. 당신은 사용해야합니다 :

    이건 정말 기본적인 것들이다. 당신은 사용해야합니다 :

    SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10;
    

    http://dev.mysql.com/doc/refman/5.5/en/select.html

    이 때문에 (오프셋, 제한)된다 (10, 10) 두 인수 행 11-20을 검색합니다. 20 순위 - 9,11는 10를 잡기 위해 필요한 것입니다.

  2. ==============================

    2.를 사용하여 쿼리를 명확히하기 위해 오프셋.

    를 사용하여 쿼리를 명확히하기 위해 오프셋.

    SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
    
  3. ==============================

    3.한계는 오프셋 매개 변수가 있습니다

    한계는 오프셋 매개 변수가 있습니다

    SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10
    
  4. ==============================

    4.

    SET @rank = 0;
    SELECT rank, name, score
    FROM (
        SELECT @rank := @rank +1 AS rank, name, score
        FROM mydb
        ORDER BY score DESC 
        LIMIT 100 
    ) X
    WHERE rank >= 10;
    
  5. ==============================

    5.당신은 오프셋 사용할 수 있습니다

    당신은 오프셋 사용할 수 있습니다

    SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10
    

    여기에, 오프셋은에서에게 다음 10 개 개의 데이터가 표시됩니다 위치를 나타냅니다. 당신은 또한 아래에서 사용할 수 있습니다 :

    SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10
    
  6. from https://stackoverflow.com/questions/5767479/mysql-limit-range by cc-by-sa and MIT license