MySQL에서 OFFSET과 함께 LIMIT를 사용할 때 어떤 행이 반환됩니까?


140

아래 쿼리에서 :

SELECT column 
FROM table
LIMIT 18 OFFSET 8

우리는 얼마나 많은 결과를 어디서 그리고 어디에서 얻을 수 있습니까?


주문을 먼저 제한 한 다음 OFFSET해야합니다. 그렇지 않으면 오류가 발생합니다.
Mouser의

답변:


189

레코드 # 9에서 시작하여 레코드 # 26에서 18 개의 결과를 반환합니다.

에서 검색어를 읽고 시작하십시오 offset. 먼저 8로 오프셋합니다. 즉, 쿼리의 처음 8 개 결과를 건너 뜁니다. 그런 다음 18로 제한합니다. 즉, 총 18 개의 레코드 인 레코드 9, 10, 11, 12, 13, 14, 15, 16 .... 24, 25, 26을 고려합니다.

이것을 확인하십시오 .

또한 공식 문서 .


U는 정확합니다. 차이가있는 흑백 제한
8,18

26
아니요, 동일합니다. LIMIT 8, 18그냥 지름길입니다 :)
Mosty Mostacho

1
나는 또한 내가 그것의 명확한 :) 이제 두 자리 숫자 만 사이에 데이터를 반환 생각했다 혼동되면서 우수 답변
MR_AMDEV

47

OFFSET 테이블에서 시작 커서를 나타내는 키워드 일뿐입니다.

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

당신은 같은 결과 양식을 얻을 것이다

SELECT column FROM table LIMIT 8, 18

시각적 표현 ( R일부 순서로 테이블에서 하나의 레코드 임)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.