在 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
的情况下使用。