>  기사  >  데이터 베이스  >  페이지 매김 쿼리 mysql 문

페이지 매김 쿼리 mysql 문

PHPz
PHPz원래의
2023-05-11 15:23:38880검색

데이터베이스에서는 데이터에 대해 페이징 쿼리를 수행하고, 각 페이지에 표시되는 숫자를 제어하고, 해당 결과를 반환해야 하는 경우가 많습니다.

MySQL은 LIMIT 및 OFFSET 키워드를 사용하여 페이지를 매긴 쿼리를 수행하는 매우 간단한 방법을 제공합니다.

LIMIT는 쿼리 결과에서 반환되는 레코드 행 수를 정의하고, OFFSET은 결과가 반환되는 행을 정의합니다. 예:

SELECT * FROM table_name LIMIT 10 OFFSET 20;

위 명령문은 table_name 테이블에서 데이터의 21~30번째 행을 반환합니다.

1~10개 행의 데이터를 표시하려면 LIMIT를 직접 사용하세요.

SELECT * FROM table_name LIMIT 10;

MySQL에서는 두 개의 매개변수를 사용하여 반환할 항목을 지정하는 또 다른 LIMIT 사용 방법도 제공합니다. 기록과 출발선 번호. 예:

SELECT * FROM table_name LIMIT 20, 10;

위 명령문은 table_name 테이블에서 데이터의 21~30번째 행을 반환합니다.

LIMIT 및 OFFSET 키워드 외에도 페이징 쿼리에 ROW_NUMBER() 함수를 사용할 수도 있습니다. 이 기능은 SQL Server 및 Oracle 데이터베이스에서 널리 사용되지만 MySQL에서는 흔하지 않습니다.

페이징 쿼리에 이 함수를 사용하려면 먼저 쿼리 결과를 정렬한 후 ROW_NUMBER() 함수를 추가해야 합니다. 예:

SELECT *, ROW_NUMBER() OVER (ORDER BY column_name) as row_num
FROM table_name
LIMIT 20 OFFSET 0;

위 명령문은 table_name 테이블의 column_name 열을 기준으로 결과를 정렬하고 테이블의 처음 20개 행을 반환합니다. 데이터.

기본 페이징 쿼리 외에도 INNER JOIN 또는 LEFT JOIN을 사용하여 여러 테이블을 결합하여 보다 포괄적인 데이터를 얻는 등 페이징을 위한 다른 기술을 사용할 수도 있습니다.

예를 들어 두 테이블에서 특정 조건과 일치하는 레코드를 찾아야 한다고 가정해 보겠습니다. INNER JOIN 또는 LEFT JOIN을 제한하기 위해 중첩 쿼리를 사용할 수 있습니다.

SELECT * FROM table_1
INNER JOIN table_2 ON table_1.id = table_2.id
WHERE 조건
LIMIT 20 OFFSET 0;

위 명령문은 Find에 있습니다. table_1 및 table_2 테이블의 조건을 충족하는 레코드를 반환하고 데이터의 처음 20개 행을 반환합니다.

페이징 쿼리를 수행할 때 일부 성능 및 효율성 문제에도 주의를 기울여야 합니다. 예를 들어, OFFSET 키워드를 사용할 때 MySQL은 반환할 레코드를 찾기 위해 전체 결과 집합을 검색해야 합니다.

쿼리 효율성을 높이기 위해 기본 키 또는 고유 인덱스를 사용하여 테이블을 정렬할 수 있습니다. 이렇게 하면 쿼리가 더 빨라지고 포함 인덱스를 사용하여 임시 테이블 사용을 피할 수 있습니다.

일반적으로 페이징 쿼리를 수행할 때는 범주별로 각 쿼리의 요구 사항을 고려하고 적절한 방법을 채택하여 쿼리 효율성을 높이고 쿼리 결과의 정확성을 보장해야 합니다.

위 내용은 페이지 매김 쿼리 mysql 문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:레드햇 mysql 설치다음 기사:레드햇 mysql 설치