在MySQL中使用LIMIT和OFFSET时会返回哪些行?

Aru*_*llu 128 mysql

在下面的查询中:

SELECT column 
FROM table
LIMIT 18 OFFSET 8
Run Code Online (Sandbox Code Playgroud)

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

Mos*_*cho 177

它将从记录#9开始返回18个结果并在记录#26上结束.

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

看看这个.

还有官方文件.

  • 不,它是一样的.`LIMIT 8,18`只是一个捷径:) (26认同)

vin*_*eet 39

OFFSET 只是一个关键字,表示在表中启动游标

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)
Run Code Online (Sandbox Code Playgroud)

你会得到相同的结果表格

SELECT column FROM table LIMIT 8, 18
Run Code Online (Sandbox Code Playgroud)

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

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result
Run Code Online (Sandbox Code Playgroud)

  • 很棒的可视化! (4认同)
  • 加上一个用于视觉表示。 (2认同)