现在位置: 首页 > 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:这部分指定了要从数据库中选择哪些列。column1column2columnN 是列的名称,你可以替换成实际的列名。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