복붙노트

[SQL] MySQL은 TOP에 대한 대안이 있습니까?

SQL

MySQL은 TOP에 대한 대안이 있습니까?

나는 MySQL의에서와 TOP 키워드의 대안을 알고 싶어요. 나는 SQL Server의 TOP에 대해 읽었습니다.

MySQL의에서이 (를) 대체 할 수있는 다른, 또는 우리가 동일한 기능을 얻을 수있는 MySQL의 다른 어떤 방법이 있습니까?

해결법

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

    1.결과 주문 및 제한 :

    결과 주문 및 제한 :

    SELECT field1, field2
    FROM myTable
    ORDER BY field1 ASC
    LIMIT 10
    
  2. ==============================

    2.당신은 LIMIT 키워드합니다 (SELECT 명령의 설명서를 참조하십시오)를 사용할 수 있습니다 - 그것은 쿼리의 마지막에 배치됩니다 :

    당신은 LIMIT 키워드합니다 (SELECT 명령의 설명서를 참조하십시오)를 사용할 수 있습니다 - 그것은 쿼리의 마지막에 배치됩니다 :

    select *
    from your_table
    where ...
    limit 10
    

    상위 10 라인을 얻을 수 있습니다

    또는 :

    select *
    from your_table
    where ...
    limit 5, 10
    

    (즉, 점점 선 6 ~ 15)이 6 일부터 시작하여 10 선을 얻으려면.

  3. ==============================

    3.나는 약간의 성능 고려 사항을 추가 할 의해이 질문에 대한 답이 알고있다. MySQL의에서 TOP 연산자는 LIMIT로 변환되지 않습니다.

    나는 약간의 성능 고려 사항을 추가 할 의해이 질문에 대한 답이 알고있다. MySQL의에서 TOP 연산자는 LIMIT로 변환되지 않습니다.

    당신은 DB에 삽입 된 마지막 10 명을 취득한다고 가정 :

    SELECT name, id
    FROM persons
    ORDER BY id DESC
    LIMIT 10
    

    행의 수천을 사용하는 경우에는이 매우 느린되었다 할 수있다.

    훨씬 빠른 솔루션은 현재 행 번호 X를 검색 할 것입니다 :

    SELECT COUNT(*) FROM persons
    

    마지막 10 쿼리에 해당 번호를 사용합니다 :

    SELECT name, id
        FROM persons
        LIMIT x-10,10
    

    한계는 첫째 X-10 행을 건너 뛰고 다음 10를 반환합니다 그래서. 이 열을 정렬보다 나를 위해 100 배 빠른 속도로, 그러나 이것은 단지 내 경험이다.

  4. ==============================

    4.예, 제한 조항이있다.

    예, 제한 조항이있다.

    예:

        SELECT * FROM `your_table` LIMIT 0, 10 
    

    이 데이터베이스에서 처음 10 개 결과가 표시됩니다.

  5. ==============================

    5.상단의 해당 MySQL과 당신은 MySQL의 문서에 LIMIT에 대해 더 이상 찾을 수 있습니다

    상단의 해당 MySQL과 당신은 MySQL의 문서에 LIMIT에 대해 더 이상 찾을 수 있습니다

  6. from https://stackoverflow.com/questions/2249905/is-there-an-alternative-to-top-in-mysql by cc-by-sa and MIT license