SQLite Limit 子句
我们已经能够灵活的使用各种条件筛选出我们想要的记录,但数据还是太多了,如果我们只想看前 3 条数据要怎么做呢?如果我们只想看工资最高的数据要怎么做呢?
SQLite 的 LIMIT 子句可以限制 SELECT 语句返回的数据数量。
LIMIT 在 SELECT 语句中的位置
在 SELECT 语句中, LIMIT 子句在所有的子句之后。
SELECT FROM WHERE GROUP BY HAVING ORDER BY LIMIT
语法
带有 LIMIT 子句的基本语法如下:
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]
偏移量从 0 开始计数。
LIMIT 子句也可以用在 DELETE 语句和 UPDATE 语句之中,用法和在 SELECT 语句中一样。
SQLite 引擎返回从下一行开始直到给定的 OFFSET 为止的所有行,如下面的最后一个范例所示
范例
假设我们的 company 表有以下记录:
sqlite> SELECT * FROM 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
1. 只显示查询结果集中前 6 行数据
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
2. 只显示查询结果集中第二行到第六行数据
偏移量从 0 开始计数。
sqlite> SELECT * FROM company LIMIT 4 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 6 Kim 22 South-Hall 45000.0