SQLite中从数据列表中获取第N个项目的最佳SQL查询是什么。
数据没有数字键
答案 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
您可以使用LIMIT
和OFFSET
来
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语法。 (我使用的最后一个版本。)