在 SQL 中,OFFSET 子句用于从查询结果集中排除指定数量的行。这通常与 LIMIT 子句一起使用,以便在分页查询时获取特定范围内的行。
OFFSET 子句的语法如下:
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, ...]
LIMIT limit_value
OFFSET offset_value;
其中:
column1, column2, ... 是要从表中选择的列名。table_name 是要查询的表名。[WHERE condition] 是可选的条件子句,用于过滤结果集。[ORDER BY column1, column2, ...] 是可选的排序子句,用于对结果集进行排序。limit_value 是要返回的最大行数。offset_value 是要跳过的行数。示例:
假设我们有一个名为 employees 的表,包含以下列:id, name, age 和 salary。现在,我们想要查询年龄大于 30 的员工,并按年龄降序排列,每次查询返回 10 行,获取第 2 页的数据(即第 11 到 20 行):
SELECT id, name, age, salary
FROM employees
WHERE age > 30
ORDER BY age DESC
LIMIT 10
OFFSET 10;
在这个例子中,LIMIT 子句限制了查询结果的行数为 10,而 OFFSET 子句跳过了前 10 行,因此我们得到了第 11 到 20 行的数据。