171

在下面的查询中:

SELECT column 
FROM table
LIMIT 18 OFFSET 8

我们将获得多少结果作为输出以及从哪里到哪里?

4

4 回答 4

226

它将返回 18 个结果,从记录 #9 开始,到记录 #26 结束。

首先从 读取查询offset。首先你偏移 8,这意味着你跳过了查询的前 8 个结果。然后限制为 18。这意味着您考虑记录 9、10、11、12、13、14、15、16....24、25、26,总共 18 条记录。

看看这个

还有官方文档

于 2012-04-12T07:35:23.483 回答
74

OFFSET只不过是一个关键字来指示表中的起始光标

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

你会得到相同的结果表格

SELECT column FROM table LIMIT 8, 18

视觉表示(R以某种顺序在表中的一条记录)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result
于 2015-10-05T06:51:50.177 回答
4

您将获得从column值 9 到 26 的输出,正如您提到OFFSET的 8

于 2012-04-12T07:36:23.780 回答
0

偏移量主要用于支持 MySql SELECT 语句中的分页。首先执行查询,然后返回偏移量之后的记录。

例如:假设您想按照评分顺序(最高优先)在每页显示产品的 10 条评论,然后可以使用以下查询来获取将显示在第三页上的评论:

从评论中选择 *,其中 productid= order by rating desc LIMIT 10 OFFSET 20。

于 2022-01-16T05:24:38.757 回答