• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LOFLY
终其一生,编织快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

SQLite-LIMIT

SQLite Limit语句

通过使用LIMIT语句,限制返回查询结果的行数。

语法:


SELECT
	column_list
FROM
	table
LIMIT row_count;

row_count 是一个正整数,指定返回的行数。

例如,如果返回tracks表的前10行,你可以使用下面语句:


SELECT
	trackId,
	name
FROM
	tracks
LIMIT 10;

如果要获取结果集从第 10 行开始的前 10 行,可以使用 OFFSET 关键字,如下所示:


SELECT
	column_list
FROM
	table
LIMIT row_count OFFSET offset;

或者使用下面语法:


SELECT
	column_list
FROM
	table
LIMIT offset, row_count;

例如,要获取 tracks 表中从第 11 行开始的 10 行,可以使用以下语句:

SELECT
	trackId,
	name
FROM
	tracks
LIMIT 10 OFFSET 10;

OFFSET n 后面的数字表示从第n+1行开始,表示前面有多少行。

在Web应用程序中,通常使用LIMIT语句进行分页查询。

SQLite LIMIT和ORDER BY语句

您应该始终将 LIMIT 子句与 ORDER BY 子句一起使用。因为您希望按指定顺序而不是按未指定的顺序获取多行。

ORDER BY 子句在 SELECT 语句中出现在 LIMIT 子句之前。SQLite 在获取 LIMIT 子句中指定的行数之前对结果集进行排序。


SELECT
   column_list
FROM
   table
ORDER BY column_1
LIMIT row_count;

例如,要按大小获取前 10 个最大的曲目,可以使用以下查询:

SELECT
	trackid,
	name,
	bytes
FROM
	tracks
ORDER BY
	bytes DESC
LIMIT 10;

要获取 5 条最短的歌曲,可以使用 ORDER BY 子句按毫秒列指定的长度对tracks进行排序,并使用 LIMIT 子句获取前 5 行。

SELECT
	trackid,
	name,
	milliseconds
FROM
	tracks
ORDER BY
	milliseconds ASC
LIMIT 5;

获取第 n 个最高值和最低值

您可以使用 ORDER BY 和 LIMIT 子句来获取第 n 个最高或最低值的行。例如,您可能想知道第二长的歌曲、第三短的歌曲等。

为了能达到这个目的,你需要使用以下步骤:

  1. 首先,如果您想获取第 n 个最小值,则使用 ORDER BY 按升序对结果集进行排序,如果您想获取第 n 个最大值,则使用降序对结果集进行排序。

  2. 其次,使用 LIMIT OFFSET 子句获取第 n 高或第 n 低的行。

下面的代码返回tracks表中第2长的歌曲:

SELECT
	trackid,
	name,
	milliseconds
FROM
	tracks
ORDER BY
	milliseconds DESC
LIMIT 1 OFFSET 1;

以下语句获取tracks表中第三小的曲目。

SELECT
	trackid,
	name,
	bytes
FROM
	tracks
ORDER BY
	bytes
LIMIT 1 OFFSET 2;

posted @ 2024-07-18 10:19  编织快乐  阅读(45)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3