获取SQL中的10个最新条目

时间:2013-12-25 13:19:35

标签: java android sqlite

我正在尝试在我的sqlite数据库中获取十个最新条目。我需要一次只获取一个条目,而不是一次只获取这10个条目。

到现在为止,我这样做了:

"SELECT " + sql + " FROM " + TABLE_NAME
                    + " WHERE _id = (SELECT max(_id)-2 FROM " + TABLE_NAME + ")";

对于我需要的每个条目,我只是在做...max(_id)-x,但如果某些条目在某个时间被删除,则不起作用。 id有一些空白(比如1,2,4,8 ......)。

经过一些研究后我尝试了这样的事情:

    "SELECT * FROM (SELECT " + sql + ", rank() over (order by max(_id) desc) rk 
FROM " + TABLE_NAME + " GROUP BY " + sql + ") t WHERE rk = 2"

然而,这种方法会崩溃并显示以下消息

android.database.sqlite.SQLiteException: near "(": syntax error (code 1): , while compiling: select * from (select price, rank() over (order by max(_id) desc) rk from refuels group by price) t where rk = 2

我怎样才能完成这项工作?提前致谢

1 个答案:

答案 0 :(得分:0)

我找到了一个简单易用的解决方案:

"SELECT " + sql + " FROM " + TABLE_NAME + " ORDER BY _id DESC LIMIT 1 offset n"

其中n是条目-1的编号。意思是,我想要第6行,n必须是5。