'LIMIT 0, 1'과 'LIMIT 1'사이에 차이가 있습니까?


15

최근에 이러한 표기법이 다른 예제 코드를 발견했습니다.

SELECT * FROM table LIMIT 0, 1
SELECT * FROM table LIMIT 1

첫 번째 인수는 내가 틀리지 않으면 오프셋으로 간주되어야합니다.이 두 쿼리의 목적은 선택을 첫 번째 행까지 제한하는 것입니다 table

오프셋을 제거 할 때 부정적인 영향이 있습니까 / 처음에이를 제거 할 수 있습니까? 아니면 검색어를 잘못 이해 했습니까?


3
아니, 당신은 그것을 알았어요, 그들은 동등합니다. 이것도 있습니다 : LIMIT 1 OFFSET 0. 그러나 특별한 이유가 없다면 ORDER BY을 가진 쿼리에 실제로 포함시켜야 LIMIT합니다.
ypercubeᵀᴹ

답변:


13

현상태대로 설명서를 말한다 :

이  LIMIT 절은 SELECT 명령문이 리턴하는 행 수를 제한하는 데 사용될 수 있습니다  . LIMIT 하나 또는 두 개의 숫자 인수를 취하는데, 둘 다 음이 아닌 정수 상수 여야합니다 (준비된 명령문을 사용할 때 제외).

두 개의 인수를 사용하면 첫 번째 인수는 반환 할 첫 번째 행의 오프셋을 지정하고 두 번째 인수는 반환 할 최대 행 수를 지정합니다. The offset of the initial row is 0 (not 1).

LIMIT절은 SELECT명령문에서 결과 세트의 행 수를 제한하기 위해 사용됩니다 . 이 LIMIT절은 하나 또는 두 개의 인수를 허용합니다. 두 인수의 값은 0 또는 양의 정수 상수 여야합니다.

다음은 LIMIT2 개의 인수가 있는 절 구문을 보여줍니다 .

SELECT * FROM tbl
LIMIT offset, count;

LIMIT 절에서 오프셋과 카운트가 무엇을 의미하는지 봅시다 :

  • offset지정 반환 할 첫 번째 행의 오프셋. 첫 번째 행의 오프셋은 1이 아니라 0입니다.
  • count행의 지정의 최대 수는 돌아갑니다.

LIMIT하나의 인수와 함께 사용 하는 경우이 인수는 결과 세트의 시작 부분에서 리턴 할 최대 행 수를 지정하는 데 사용됩니다.

SELECT * FROM tbl LIMIT count;

위의 쿼리 LIMIT는 두 개의 인수를 허용 하는 절이 있는 다음 쿼리와 같습니다.

SELECT * FROM tbl LIMIT 0, count;

LIMIT절은 종종 절과 함께 사용됩니다 ORDER BY. 먼저이 ORDER BY절을 사용하여 특정 기준에 따라 결과 집합을 정렬 한 다음 LIMIT절을 사용 하여 가장 낮은 값 또는 가장 높은 값을 찾습니다.

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