在 SQL 中,OFFSET
和 LIMIT
是两个用于限制查询结果集的子句。它们通常一起使用,以便在分页或获取特定范围内的数据时提高查询性能。
LIMIT
子句用于限制查询返回的行数。你可以将其添加到 SELECT
语句中,以便仅返回指定数量的行。例如,要从 “employees” 表中获取前 10 名员工,你可以使用以下查询:
SELECT * FROM employees
ORDER BY salary DESC
LIMIT 10;
OFFSET
子句用于指定查询结果集的起始位置。当与 LIMIT
一起使用时,它允许你跳过前面的行并从指定位置开始返回结果。例如,要从第 11 行开始获取接下来的 10 行,你可以使用以下查询:
SELECT * FROM employees
ORDER BY salary DESC
LIMIT 10 OFFSET 10;
请注意,OFFSET
值是从 0 开始的,因此 OFFSET 10
将跳过前 11 行(第 1 到第 10 行)。
在某些数据库系统(如 MySQL、PostgreSQL 等)中,你还可以使用 OFFSET
和 LIMIT
的简写形式,将它们放在一个子句中,如下所示:
SELECT * FROM employees
ORDER BY salary DESC
LIMIT 10, 10;
在这种情况下,第一个数字(10)是 OFFSET
值,第二个数字(10)是 LIMIT
值。这将跳过前 10 行并返回接下来的 10 行。