찾다
데이터 베이스MySQL 튜토리얼mysql에서 쿼리 수를 제한하는 방법

mysql에서는 "LIMIT" 절을 사용하여 쿼리 수를 제한할 수 있습니다. 이 절은 SELECT 쿼리 결과에 의해 반환되는 항목 수를 제한할 수 있습니다. 구문은 "SELECT column1, column2,... FROM table LIMIT입니다. 오프셋, 개수;" .

mysql에서 쿼리 수를 제한하는 방법

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

데이터 테이블에 수만 개의 데이터가 있는 경우 테이블의 모든 데이터를 한 번에 쿼리하면 데이터 반환 속도가 느려지고 데이터베이스 서버에 많은 부담을 줄 수 있습니다. 이때 LIMIT 절을 사용하여 반환되는 쿼리 결과의 개수를 제한할 수 있습니다.

LIMIT는 쿼리 결과가 표시되기 시작하는 레코드와 총 표시되는 레코드 수를 지정하는 데 사용되는 MySQL의 특수 키워드입니다.

1. MySQL LIMIT 절 소개

SELECT 문의 LIMIT 절을 사용하여 결과 집합의 행 수를 제한하세요. LIMIT 절은 하나 또는 두 개의 매개변수를 허용합니다. 두 매개변수의 값은 모두 0 또는 양의 정수여야 합니다. SELECT语句中使用LIMIT子句来约束结果集中的行数。LIMIT子句接受一个或两个参数。两个参数的值必须为零或正整数。

下面说明了两个参数的LIMIT子句语法:

SELECT 
    column1,column2,...
FROM
    table
LIMIT offset , count;

我们来查看LIMIT子句参数:

  • offset参数指定要返回的第一行的偏移量。第一行的偏移量为0,而不是1
  • count指定要返回的最大行数。

mysql에서 쿼리 수를 제한하는 방법

当您使用带有一个参数的LIMIT子句时,此参数将用于确定从结果集的开头返回的最大行数。

SELECT 
    column1,column2,...
FROM
    table
LIMIT count;

上面的查询等同于下面接受两个参数的LIMIT子句的查询:

SELECT 
    column1,column2,...
FROM
    table
LIMIT 0 , count;

2. 使用MySQL LIMIT获取前N行

可以使用LIMIT子句来选择表中的前N行记录,如下所示:

SELECT 
    column1,column2,...
FROM
    table
LIMIT N;

例如,要查询employees表中前5个客户,请使用以下查询:

SELECT customernumber, customername, creditlimit FROM customers LIMIT 5;

或者 -

SELECT customernumber, customername, creditlimit FROM customers LIMIT 0,5;

执行上面语句,得到以下结果 -

mysql> SELECT customernumber, customername, creditlimit FROM customers LIMIT 5;
+----------------+----------------------------+-------------+
| customernumber | customername               | creditlimit |
+----------------+----------------------------+-------------+
|            103 | Atelier graphique          | 21000       |
|            112 | Signal Gift Stores         | 71800       |
|            114 | Australian Collectors, Co. | 117300      |
|            119 | La Rochelle Gifts          | 118200      |
|            121 | Baane Mini Imports         | 81700       |
+----------------+----------------------------+-------------+
5 rows in set

3. 使用MySQL LIMIT获得最高和最低的值

LIMIT子句经常与ORDER BY子句一起使用。首先,使用ORDER BY子句根据特定条件对结果集进行排序,然后使用LIMIT子句来查找最小或最大值。

注意:ORDER BY子句按指定字段排序的使用。

请参见示例数据库(yiibaidb)中的以下customers表,其表结构如下所示 -

mysql> desc customers;
+------------------------+---------------+------+-----+---------+-------+
| Field                  | Type          | Null | Key | Default | Extra |
+------------------------+---------------+------+-----+---------+-------+
| customerNumber         | int(11)       | NO   | PRI | NULL    |       |
| customerName           | varchar(50)   | NO   |     | NULL    |       |
| contactLastName        | varchar(50)   | NO   |     | NULL    |       |
| contactFirstName       | varchar(50)   | NO   |     | NULL    |       |
| phone                  | varchar(50)   | NO   |     | NULL    |       |
| addressLine1           | varchar(50)   | NO   |     | NULL    |       |
| addressLine2           | varchar(50)   | YES  |     | NULL    |       |
| city                   | varchar(50)   | NO   |     | NULL    |       |
| state                  | varchar(50)   | YES  |     | NULL    |       |
| postalCode             | varchar(15)   | YES  |     | NULL    |       |
| country                | varchar(50)   | NO   |     | NULL    |       |
| salesRepEmployeeNumber | int(11)       | YES  | MUL | NULL    |       |
| creditLimit            | decimal(10,2) | YES  |     | NULL    |       |
+------------------------+---------------+------+-----+---------+-------+
13 rows in set

例如,要查询信用额度最高的前五名客户,请使用以下查询:

SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY creditlimit DESC
LIMIT 5;

执行上面查询语句,得到以下结果 -

mysql> SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY creditlimit DESC
LIMIT 5;
+----------------+------------------------------+-------------+
| customernumber | customername                 | creditlimit |
+----------------+------------------------------+-------------+
|            141 | Euro+ Shopping Channel       | 227600      |
|            124 | Mini Gifts Distributors Ltd. | 210500      |
|            298 | Vida Sport, Ltd              | 141300      |
|            151 | Muscle Machine Inc           | 138500      |
|            187 | AV Stores, Co.               | 136800      |
+----------------+------------------------------+-------------+
5 rows in set

以下查询将返回信用限额最低的五位客户:

SELECT customernumber, customername, creditlimit
FROM customers
ORDER BY
 creditlimit ASC
LIMIT 5;

4. 使用MySQL LIMIT获得第n个最高值

MySQL中最棘手的问题之一是:如何获得结果集中的第n个最高值,例如查询第二(或第n)贵的产品是哪个,显然不能使用MAX或MIN这样的函数来查询获得。 但是,我们可以使用MySQL LIMIT来解决这样的问题。

  • 首先,按照降序对结果集进行排序。
  • 第二步,使用LIMIT子句获得第n贵的产品。

通用查询如下:

SELECT 
    column1, column2,...
FROM
    table
ORDER BY column1 DESC
LIMIT nth-1, count;

下面我们来看看一个例子,将使用示例数据库(yiibaidb)中的产品(products)表来进行演示。products表的结构如下所示 -

mysql> desc products;
+--------------------+---------------+------+-----+---------+-------+
| Field              | Type          | Null | Key | Default | Extra |
+--------------------+---------------+------+-----+---------+-------+
| productCode        | varchar(15)   | NO   | PRI | NULL    |       |
| productName        | varchar(70)   | NO   |     | NULL    |       |
| productLine        | varchar(50)   | NO   | MUL | NULL    |       |
| productScale       | varchar(10)   | NO   |     | NULL    |       |
| productVendor      | varchar(50)   | NO   |     | NULL    |       |
| productDescription | text          | NO   |     | NULL    |       |
| quantityInStock    | smallint(6)   | NO   |     | NULL    |       |
| buyPrice           | decimal(10,2) | NO   |     | NULL    |       |
| MSRP               | decimal(10,2) | NO   |     | NULL    |       |
+--------------------+---------------+------+-----+---------+-------+
9 rows in set

查看以下产品表中的行记录:

mysql> SELECT productCode, productName, buyprice
FROM products
ORDER BY
 buyprice DESC;
+-------------+--------------------------------------+----------+
| productCode | productName                          | buyprice |
+-------------+--------------------------------------+----------+
| S10_4962    | 1962 LanciaA Delta 16V               | 103.42   |
| S18_2238    | 1998 Chrysler Plymouth Prowler       | 101.51   |
| S10_1949    | 1952 Alpine Renault 1300             | 98.58    |
| S24_3856    | 1956 Porsche 356A Coupe              | 98.3     |
| S12_1108    | 2001 Ferrari Enzo                    | 95.59    |
| S12_1099    | 1968 Ford Mustang                    | 95.34    |
... ....
+-------------+--------------------------------------+----------+
110 rows in set

我们的任务找出结果集中价格第二高的产品。可以使用LIMIT子句来选择第二行,如以下查询(注意:偏移量从0开始,所以要指定从1开始,然后取一行记录):

SELECT productCode, productName, buyprice FROM  products
ORDER BY buyprice DESC
LIMIT 1, 1;

执行上面查询语句,得到以下结果 -

mysql> SELECT productCode, productName, buyprice FROM  products
ORDER BY buyprice DESC
LIMIT 1, 1;
+-------------+--------------------------------+----------+
| productCode | productName                    | buyprice |
+-------------+--------------------------------+----------+
| S18_2238    | 1998 Chrysler Plymouth Prowler | 101.51   |
+-------------+--------------------------------+----------+
1 row in set

类似的,获取售价第三高、第四高的产品信息为:LIMIT 2, 1LIMIT 3, 1

두 매개변수에 대한 LIMIT 절 구문은 아래에 설명되어 있습니다.

rrreee LIMIT 절 매개변수를 살펴보겠습니다.

  • offset 매개변수는 반환될 첫 번째 행의 오프셋을 지정합니다. 첫 번째 줄의 오프셋은 1이 아니라 0입니다.
  • count반환할 최대 행 수를 지정합니다.
1. png🎜🎜하나의 매개변수와 함께 LIMIT 절을 사용하는 경우 이 매개변수는 결과 집합의 시작 부분에서 반환할 최대 행 수를 결정하는 데 사용됩니다. 🎜rrreee🎜위 쿼리는 두 개의 매개변수가 있는 LIMIT 절을 허용하는 다음 쿼리와 동일합니다. 🎜rrreee

2. MySQL LIMIT는 첫 번째 N 행을 가져옵니다🎜🎜아래 표시된 대로 LIMIT 절을 사용하여 테이블에서 레코드의 첫 번째 N 행을 선택할 수 있습니다. 🎜rrreee🎜예를 들어 , 를 쿼리하려면 직원 테이블의 첫 번째 5 고객에 대해 다음 쿼리를 사용하십시오. 🎜rrreee🎜 또는 -🎜rrreee🎜 위 명령문을 실행하면 다음 결과가 나타납니다. -🎜rrreee3. MySQL LIMIT를 사용하여 최고값과 최저값 얻기 ​​🎜🎜 LIMIT 절은 종종 다음과 함께 사용됩니다. ORDER BY 절. 먼저 ORDER BY 절을 사용하여 특정 기준에 따라 결과 집합을 정렬한 다음 LIMIT 절을 사용하여 최소값 또는 최대값을 찾습니다. 🎜🎜🎜참고: 지정된 필드별로 정렬하려면 ORDER BY 절을 사용하세요. 🎜🎜🎜샘플 데이터베이스(yiibaidb)에서 다음 customers 테이블을 참조하세요. 테이블 구조는 다음과 같습니다. - 🎜rrreee🎜예를 들어 신용 한도가 가장 높은 상위 5명의 고객을 쿼리하려면 다음을 사용하세요. 다음 쿼리 :🎜rrreee🎜위 쿼리 문을 실행하여 다음 결과를 얻습니다. -🎜rrreee🎜다음 쿼리는 신용 한도가 가장 낮은 5명의 고객을 반환합니다.🎜rrreee

🎜🎜4. MySQL LIMIT를 사용하여 n번째로 높은 값을 얻으세요 🎜🎜MySQL에서 가장 어려운 문제 중 하나는 다음과 같이 결과 집합에서 n번째로 높은 값을 얻는 방법입니다. 두 번째(또는 n) 쿼리 중 가장 비싼 제품은 무엇입니까? 물론 MAX 또는 MIN과 같은 함수를 사용하여 쿼리할 수는 없습니다. 그러나 MySQL LIMIT를 사용하여 이러한 문제를 해결할 수 있습니다. 🎜
  • 먼저 결과 집합을 내림차순으로 정렬합니다.
  • 두 번째 단계LIMIT 절을 사용하여 n번째로 가장 비싼 제품을 얻는 것입니다.
🎜일반 쿼리는 다음과 같습니다. 🎜rrreee🎜샘플 데이터베이스(yiibaidb)의 제품(products) 테이블을 사용하여 아래 예를 살펴보겠습니다. 데모. products 테이블의 구조는 다음과 같습니다. - 🎜rrreee🎜다음 제품 테이블의 행을 살펴보세요. 🎜rrreee🎜 우리의 임무는 결과 집합에서 두 번째로 높은 가격의 제품을 찾는 것입니다. 다음 쿼리와 같이 LIMIT 절을 사용하여 두 번째 행을 선택할 수 있습니다(참고: 오프셋은 0에서 시작하므로 1에서 지정). > 시작하고 한 줄의 레코드를 가져옵니다): 🎜rrreee🎜위 쿼리문을 실행하면 다음과 같은 결과가 나옵니다. -🎜rrreee🎜마찬가지로 세 번째와 네 번째로 높은 판매 가격의 제품 정보를 가져옵니다: LIMIT 2, 1 code> 및 <code>LIMIT 3, 1. 🎜🎜【관련 추천: 🎜mysql 비디오 튜토리얼🎜】🎜

위 내용은 mysql에서 쿼리 수를 제한하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL에서 뷰를 사용하는 한계는 무엇입니까?MySQL에서 뷰를 사용하는 한계는 무엇입니까?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations : 1) 그들은 upportallsqloperations, datamanipulation throughviewswithjoinsorbqueries를 제한하지 않습니다

MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여MySQL 데이터베이스 확보 : 사용자 추가 및 권한 부여May 14, 2025 am 12:09 AM

적절한 usermanagementInmysqliscrucialforenhancingsecurityandensuringfefficientDatabaseOperation.1) USECREATEUSERTOWDDUSERS,@'localHost'or@'%'.

MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?MySQL에서 사용할 수있는 트리거 수에 영향을 미치는 요인은 무엇입니까?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers, butpracticalfactorsdeteirefectiveuse : 1) ServerConfigurationimpactStriggerManagement; 2) 복잡한 트리거 스케일 스케일 사이드로드; 3) argertableSlowtriggerTriggerPerformance; 4) High ConconcercencyCancaUspriggerContention; 5) m

MySQL : Blob을 저장하는 것이 안전합니까?MySQL : Blob을 저장하는 것이 안전합니까?May 14, 2025 am 12:07 AM

예, It 'safetostoreBlobdatainmysql, butconsidertheStefactors : 1) StoragesPace : BlobScanconSumeSignificantspace, 잠재적으로 증가하는 CostsandSlownperformance

MySQL : PHP 웹 인터페이스를 통해 사용자 추가MySQL : PHP 웹 인터페이스를 통해 사용자 추가May 14, 2025 am 12:04 AM

PHP 웹 인터페이스를 통해 MySQL 사용자를 추가하면 MySQLI 확장 기능을 사용할 수 있습니다. 단계는 다음과 같습니다. 1. MySQL 데이터베이스에 연결하고 MySQLI 확장자를 사용하십시오. 2. 사용자를 생성하고 CreateUser 문을 사용하고 Password () 함수를 사용하여 암호를 암호화하십시오. 3. SQL 주입 방지 및 MySQLI_REAL_ESCAPE_STRING () 함수를 사용하여 사용자 입력을 처리하십시오. 4. 새 사용자에게 권한을 할당하고 보조금 명세서를 사용하십시오.

MySQL : Blob 및 기타없는 SQL 스토리지, 차이점은 무엇입니까?MySQL : Blob 및 기타없는 SQL 스토리지, 차이점은 무엇입니까?May 13, 2025 am 12:14 AM

mysql'sblobissuilableforstoringbinarydatawithinareldatabase, whilenosqloptionslikemongodb, redis, and cassandraofferflexible, scalablesolutionsforunstuctureddata.blobissimplerbutcanslowwownperformance를 사용하는 것들보업 betterscal randaysand

MySQL 추가 사용자 : 구문, 옵션 및 보안 모범 사례MySQL 추가 사용자 : 구문, 옵션 및 보안 모범 사례May 13, 2025 am 12:12 AM

TOADDAUSERINMYSQL, 사용 : CreateUser'UserName '@'host'IdentifiedBy'Password '; 여기서'showTodoitseciRely : 1) ChoosetheHostCareLyTocon trolaccess.2) setResourcelimitswithOptionslikemax_queries_per_hour.3) Usestrong, iriquepasswords.4) enforcessl/tlsconnectionswith

MySQL : 문자열 데이터 유형을 피하는 방법 일반적인 실수?MySQL : 문자열 데이터 유형을 피하는 방법 일반적인 실수?May 13, 2025 am 12:09 AM

toavoidcommonmistakeswithstringdatatypesinmysql, stroundStringTypenuances, chooseTherightType, andManageEncodingAndCollationSettingSefectively.1) usecharforfixed-lengthstrings, varcharvariable-length, andtext/blobforlargerdata.2) setcarcatter

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.