Mysql 简明教程

MySQL - Limit

MySQL Limit Clause

MySQL 中的 LIMIT 子句可用于指定要返回的记录数量。该子句通常在处理数千条记录的表时使用。它接受一个或两个参数(偏移或计数)。两个参数的值均应为正整数或零。

第一行的 offset 从 0 开始,而不是从 1 开始,并且第一行的计数从 1 开始。让我们使用以下图片来更好地理解它:

mysql limit

假设上述表的名称为 students 。如果我们执行上述查询,我们将会得到 Mahika、Aarohi 和 Nikhil 这样的输出。

Syntax

以下是 MySQL Limit 子句的通用语法:

SELECT column1, column2, ... FROM table_name
LIMIT number;

Example

以下是使用 MySQL Limit 查询的示例。

首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

这里,我们使用以下 INSERT INTO 语句向上面创建的表中插入 7 条记录:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

执行以下查询以提取 CUSTOMERS 表中显示的所有记录:

SELECT * FROM CUSTOMERS;

以下为 CUSTOMERS 表 −

现在,我们使用 MySQL LIMIT 子句配合 SELECT 语句从 CUSTOMERS 表中选择前四条记录:

SELECT * FROM CUSTOMERS LIMIT 4;

Output

如同我们从以下输出中看到的,它返回了 CUSTOMERS 表中的前四行:

Example

在以下查询中,我们从 CUSTOMERS 表中选择从第三行(偏移量 2)开始的四行:

SELECT * FROM CUSTOMERS LIMIT 2,4;

Output

当我们执行上述查询时,输出将获得如下:

LIMIT with WHERE Clause

在 MySQL 中,我们可以在 SELECT 语句中使用 LIMIT 子句和 WHERE 子句来指定根据条件从查询返回的行数。

Syntax

以下是通用语法:

SELECT column1, column2, ... FROM table_name
WHERE condition
LIMIT number;

Example

在以下查询中,我们从 CUSTOMERS 表中选择 AGE 大于 21 的前两行:

SELECT * FROM CUSTOMERS WHERE AGE > 21 LIMIT 2;

Output

执行以上查询后,输出显示如下 −

Example

在以下查询中,我们从 CUSTOMERS 表中选择从第二条记录(偏移量)开始的后 3 条记录,其中 AGE 列的值大于 21:

SELECT * FROM CUSTOMERS WHERE AGE > 21 LIMIT 1,3;

Output

以上查询的输出如下所示:

LIMIT with ORDER BY clause

ORDER BY 子句将按指定顺序(ASC 或 DESC)对列中的行进行排序。在 MySQL 中,我们可以在 ORDER BY 子句中使用 LIMIT 子句来限制排序结果集中返回的行数。

Syntax

以下是 MySQL 中 WHERE 子句中 LIMIT 子句的语法:

SELECT column1, column2, ... FROM table_name
ORDER BY column_name [ASC|DESC]
LIMIT number;

Example

在以下查询中,我们从 CUSTOMERS 表中提取所有记录,并将 SALARY 列按降序排列。然后我们从排序好的结果集中提取 5 行。

SELECT * FROM CUSTOMERS
ORDER BY SALARY DESC
LIMIT 5;

Output

如果我们编译并运行上述查询,则结果将生成如下:

Example

这里,我们从表中选择所有记录,并将 SALARY 列按升序排列。然后我们从排序好的结果集中从第二行(偏移量 1)开始提取三行:

SELECT * FROM CUSTOMERS
ORDER BY SALARY ASC
LIMIT 1,3;

Output

执行给定的查询后,输出如下:

Limit Clause Using a Client Program

除了限制 MySQL 查询从表中返回的记录数之外,我们还可以使用客户端程序来执行 LIMIT 操作。

Syntax

以下是此操作在各种编程语言中的语法 −

Example

以下是这些程序 −