LIMIT、OFFSET 和 FETCH 子句

本章我们学习 LIMITOFFSETFETCH 子句。和 LIMIT 一样,FETCH 也是为了限定返回的行数,但你不知道的是,FETCH 才是 SQL 标准,而 LIMIT 不是。

我们先来看一下大部分数据库都支持的、日常开发最熟悉的 LIMIT,虽然 FETCH 才是 SQL 标准,但是 LIMIT 无疑是在日常中用的最多的。

LIMITOFFSET 子句

LIMIT 的语法很简单:LIMIT <行数>。如果要限制行数的同时,还要路过一些行,可以配合 OFFSET 子句:LIMIT <行数> OFFSET <跳过的行数>

  • LIMIT n OFFSET m 典型应用就是翻页
  • MySQL 8 开始支持 LIMIT n OFFSET m 语法
-- 返回按 film_id 升序排序的前5部电影
SELECT film_id, title, release_year FROM film ORDER BY film_id LIMIT 5;

-- 返回跳过3部电影之后,按 film_id 升序排序的前4部电影
SELECT film_id, title, release_year FROM film ORDER BY film_id LIMIT 4 OFFSET 3;

-- 返回租赁费用最高的10部电影
SELECT film_id, title, rental_rate FROM film ORDER BY rental_rate DESC LIMIT 10;
要查看完整内容,请先登录