在 MySQL 中选择前 N 行
有时,你必须根据项目要求选择 MySQL 数据库的前 N 行。
n 的值根据要求而变化;它可以是 TOP 1 行或 TOP 30 行。我们将学习如何使用 MySQL 数据库中的 LIMIT 子句选择前 N 行。
你可以通过在分页中使用这些查询、查找最近的购买或交易来从这些查询中受益。同样重要的是要注意每个数据库都有不同的语法来完成此功能。
SQL Server 使用 SELECT TOP,MySQL 使用 LIMIT,Oracle 使用 ROWNUM 和 FETCH FIRST n ROWS ONLY。
使用 LIMIT 子句选择 MySQL 中的前 N 行
使用 Top N 查询意味着你希望将结果限制为一定数量的行。这些用于从结果集中获取最佳或最近的行。
在本教程中,我们使用了一个名为 customer 的表,其中包含 customer_id、customer_firstname、customer_lastname 和 customer_age。我们用一些目前看起来如下的数据填充了这个 customer 表。

我们将使用 customer 表来练习 MySQL 中的 LIMIT。我们想从 customer 表中选择 TOP 3 记录。
示例代码:
SELECT * FROM customer LIMIT 3;
输出:

我们希望获得三个最年轻的客户并对其进行分析以进行预测。你可以看到以下代码示例。
示例代码:
SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3;
首先,表格数据将根据 customer_age 进行排序。最年轻的客户将位于顶部,年长的将位于底部。
然后从有序数据的结果集中选择前 3 行。请参阅以下屏幕截图。
输出:

如果要从偏移量 3 开始选择前 4 行怎么办?你可以使用以下语法来做到这一点。
SELECT * FROM you_table_name
ORDER BY column_name ASC
LIMIT offset,row_count;
永远记住,LIMIT 子句中第一行的 offset 从 0 开始。这是此方案的示例代码。
示例代码:
SELECT * FROM customer
ORDER BY customer_age ASC
LIMIT 3,4;
输出:

或者,我们也可以通过以下方式使用带有行数和偏移量的 LIMIT 子句。
# You can also write the above query in this way
SELECT * FROM person.customer
ORDER BY customer_age ASC
LIMIT 1 OFFSET 4;
输出:

你还可以通过将查询中的 ASC 替换为 DESC 以降序排列你的表格。
结论
我们得出的结论是,我们可以根据项目要求限制结果集中的行数。
我们可以选择从 m 开始的前 n 行或前 n 行。我们还了解到 LIMIT 子句可以在有/没有 ORDER BY 的情况下使用。
