SQLite LIMIT 子句用于从表中获取指定数量的记录。当表包含数千条记录并且返回大型数据集会影响性能时,这非常有用。

因此,我们在分页查询时经常使用它。

语法

在 SQLite 中使用 LIMIT 子句的语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT number; 

示例:

考虑一个数据库,其中包含一个名为 Employee 的表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

要从 Employee 表中获取前 3 条记录,可以使用以下查询:

SELECT * FROM Employee LIMIT 3; 

这将产生如下结果:如下所示:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800

要获取员工年龄大于25的前3条记录,查询将是:

SELECT * FROM Employee 
WHERE Age > 25
LIMIT 3; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000

使用带有 LIMIT 子句的 OFFSET

OFFSET 值最常与 LIMIT 子句一起使用。 OFFSET值允许用户指定从哪一行开始检索数据。

语法

在SQLite中使用OFFSET关键字的语法如下:

/* 方法1 */
SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT fetch_row_count OFFSET offset_row_count;

/* 方法2 */
SELECT column1, column2, ...
FROM table_name
WHERE condition(s)
LIMIT offset_row_count, fetch_row_count; 

示例:

考虑一个数据库,其中包含一个名为 Employee 的表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

要从 Employee 表中获取前 2-5 条记录,查询为:

SELECT * FROM Employee LIMIT 4 OFFSET 1; 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
2MarryNew York2424
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000

使用以下查询也可以获得相同的结果。

SELECT * FROM Employee LIMIT 1, 4; 

这将产生结果如下所示:

EmpIDNameCityAgeSalary
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000