跳转到主要内容
模块 2 · 第 1 课(共 4)课程中的5/57~6 min
模块课程(1/4)

用 LIMIT 进行限制

查询可以轻松返回数千(或数百万)行。当你只 想要 预览 - 或者当你想要建立 前 N 排名 - 你使用 LIMIT 子句:

SQL
SELECT <colonne>
FROM   <tabella>
[WHERE  <condizione>]
[ORDER BY <colonna> [ASC|DESC]]
LIMIT  <numero>;

LIMIT 位于查询的 结尾 并将结果截断为 给定的行数。仅仅建立排名是不够的:没有 ORDER BY,SQL 不保证您返回哪些行。所以金色的 规则是:

前 N 个 = ORDER BY + LIMIT。

示例

SQL
-- Le prime 5 righe della tabella, in ordine arbitrario:
SELECT * FROM employees LIMIT 5;

-- I 3 dipendenti più pagati:
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary DESC
LIMIT 3;

-- I 5 progetti con il budget più basso:
SELECT name, budget
FROM projects
ORDER BY budget ASC
LIMIT 5;

尝试一下

锻炼#sql.m2.l1.e1
尝试:0加载中...

显示 3 位最高薪员工的姓氏 (last_name) 和薪水 (salary),从最高薪到最低薪。

正在加载编辑器...
显示提示

您需要 ORDER BY pay DESC 进行排名,并需要 LIMIT 3 来停止前三名。

3 次尝试后可用的解决方案

复习练习

锻炼#sql.m2.l1.e2
尝试:0加载中...

跳过薪资最高的 2 名员工,显示紧随其后的 3 名员工(按照薪资降序排列的第 3、4 和 5 位)。在 LIMIT 之后使用 OFFSET。

正在加载编辑器...
显示提示

OFFSET 2 跳过前 2 行,LIMIT 3 获取接下来的 3 行。

3 次尝试后可用的解决方案