在 MySQL 中选择前 N 行

Mehvish Ashiq 2023年1月30日 2022年5月13日
  1. 使用 LIMIT 子句选择 MySQL 中的前 N ​​行
  2. 结论
在 MySQL 中选择前 N 行

有时,你必须根据项目要求选择 MySQL 数据库的前 N ​​行。

n 的值根据要求而变化;它可以是 TOP 1 行或 TOP 30 行。我们将学习如何使用 MySQL 数据库中的 LIMIT 子句选择前 N 行。

你可以通过在分页中使用这些查询、查找最近的购买或交易来从这些查询中受益。同样重要的是要注意每个数据库都有不同的语法来完成此功能。

SQL Server 使用 SELECT TOP,MySQL 使用 LIMIT,Oracle 使用 ROWNUMFETCH FIRST n ROWS ONLY

使用 LIMIT 子句选择 MySQL 中的前 N ​​行

使用 Top N 查询意味着你希望将结果限制为一定数量的行。这些用于从结果集中获取最佳或最近的行。

在本教程中,我们使用了一个名为 customer 的表,其中包含 customer_idcustomer_firstnamecustomer_lastnamecustomer_age。我们用一些目前看起来如下的数据填充了这个 customer 表。

选择 mysql 中的前 n 行 - 客户数据

我们将使用 customer 表来练习 MySQL 中的 LIMIT。我们想从 customer 表中选择 TOP 3 记录。

示例代码:

SELECT * FROM customer LIMIT 3;

输出:

选择 mysql 中的前 n 行 - 前三条记录

我们希望获得三个最年轻的客户并对其进行分析以进行预测。你可以看到以下代码示例。

示例代码:

SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3;

首先,表格数据将根据 customer_age 进行排序。最年轻的客户将位于顶部,年长的将位于底部。

然后从有序数据的结果集中选择前 3 行。请参阅以下屏幕截图。

输出:

选择 mysql 中的前 n 行 - 三个年轻客户

如果要从偏移量 3 开始选择前 4 行怎么办?你可以使用以下语法来做到这一点。

SELECT * FROM you_table_name
ORDER BY column_name ASC
LIMIT offset,row_count;

永远记住,LIMIT 子句中第一行的 offset0 开始。这是此方案的示例代码。

示例代码:

SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3,4;

输出:

在 mysql 中选择前 n 行 - 限制三到五行

或者,我们也可以通过以下方式使用带有行数和偏移量的 LIMIT 子句。

# You can also write the above query in this way
SELECT * FROM person.customer
ORDER BY customer_age ASC
LIMIT 1 OFFSET 4;

输出:

在 mysql 中选择前 n 行 - 限制偏移量

你还可以通过将查询中的 ASC 替换为 DESC 以降序排列你的表格。

结论

我们得出的结论是,我们可以根据项目要求限制结果集中的行数。

我们可以选择从 m 开始的前 n 行或前 n 行。我们还了解到 LIMIT 子句可以在有/没有 ORDER BY 的情况下使用。

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相关文章 - MySQL Database