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 个最高或最低值的行。例如,您可能想知道第二长的歌曲、第三短的歌曲等。
为了能达到这个目的,你需要使用以下步骤:
-
首先,如果您想获取第 n 个最小值,则使用 ORDER BY 按升序对结果集进行排序,如果您想获取第 n 个最大值,则使用降序对结果集进行排序。
-
其次,使用 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;
浙公网安备 33010602011771号