SQLite获得第12条记录 - 效率最高?

时间:2010-05-05 00:06:40

标签: sql sqlite

SQLite中从数据列表中获取第N个项目的最佳SQL查询是什么。

数据没有数字键

3 个答案:

答案 0 :(得分:10)

你想要OFFSET。

SELECT mycol FROM mytable ORDER BY mycol LIMIT 1 OFFSET 11;

速记版:

SELECT mycol FROM mytable ORDER BY mycol LIMIT 11,1;

Link to documentation描述OFFSET如下:

  

LIMIT之后的可选OFFSET   指定要跳过的行数   结果集的开头。

答案 1 :(得分:3)

所以,说你的查询是

SELECT * from myTable
ORDER BY someField

您可以使用LIMITOFFSET

SELECT * from myTable
ORDER BY someField
LIMIT 1 OFFSET 11

我正在考虑this documentation。我认为这限制了你的一个结果,跳过前11行。

答案 2 :(得分:1)

如果您不知道可以排序的任何字段类型,请使用此选项,然后循环到最后一条记录:

select * from table limit 12

如果有一个字段将表格整理好,那么这应该是第12条记录:

select * from table where field = (select field from table order by field desc limit 12) limit 1

编辑:这是在引入OFFSET之前的SqLite 2.x语法。 (我使用的最后一个版本。)