SQLite Limit 子句 - SQLITE教程

SQLite Limit 子句

SQLite 的 LIMIT 子句用于限制由 SELECT 语句返回的数据数量。

语法

带有 LIMIT 子句的 SELECT 语句的基本语法如下:


SELECT column1, column2, columnN 

FROM table_name

LIMIT [no of rows]

下面是 LIMIT 子句与 OFFSET 子句一起使用时的语法:


SELECT column1, column2, columnN 

FROM table_name

LIMIT [no of rows] OFFSET [row num]

以上 SQL 语句从 table_name 表中选择column1、column2等列的数据,并且限制返回的行数和起始行,通常用于分页显示数据,其中LIMIT用于控制每页显示的行数,OFFSET用于控制从哪一行开始显示数据。

  • SELECT column1, column2, columnN :这部分指定了要从数据库中选择哪些列。 column1 column2 columnN 是列的名称,你可以替换成实际的列名。 columnN 表示可能还有更多的列,这里用 N 表示列的数量是可变的。

  • FROM table_name :这部分指定了要从哪个表中查询数据。 table_name 应该替换成实际的表名。

  • LIMIT [no of rows] :这部分用来限制查询结果的行数。 [no of rows] 是一个数字,表示你想要返回的最大行数。例如,如果你写 LIMIT 10 ,那么查询将只返回最多10行数据。

  • OFFSET [row num] :这部分用来指定查询结果的起始点。 [row num] 是一个数字,表示从哪一行开始返回数据。例如,如果你写 OFFSET 5 ,那么查询将跳过前5行数据,从第6行开始返回数据。

实例

假设 COMPANY 表有以下记录:


ID          NAME        AGE         ADDRESS     SALARY

----------  ----------  ----------  ----------  ----------

1           Paul        32          California  20000.0

2           Allen       25          Texas       15000.0

3           Teddy       23          Norway      20000.0

4           Mark        25          Rich-Mond   65000.0

5           David       27          Texas       85000.0

6           Kim         22          South-Hall  45000.0

7           James       24          Houston     10000.0

下面是一个实例,它限制了您想要从表中提取的行数:


sqlite> SELECT * FROM COMPANY LIMIT 6;

这将产生以下结果:


ID          NAME        AGE         ADDRESS     SALARY

----------  ----------  ----------  ----------  ----------

1           Paul        32          California  20000.0

2           Allen       25          Texas       15000.0

3           Teddy       23          Norway      20000.0

4           Mark        25          Rich-Mond   65000.0

5           David       27          Texas       85000.0

6           Kim         22          South-Hall  45000.0

但是,在某些情况下,可能需要从一个特定的偏移开始提取记录。下面是一个实例,从第三位开始提取 3 个记录:


sqlite> SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

这将产生以下结果:


ID          NAME        AGE         ADDRESS     SALARY

----------  ----------  ----------  ----------  ----------

3           Teddy       23          Norway      20000.0

4           Mark        25          Rich-Mond   65000.0

5           David       27          Texas       85000.0