Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取SQL中的10个最新条目_Java_Android_Sqlite - Fatal编程技术网

Java 获取SQL中的10个最新条目

Java 获取SQL中的10个最新条目,java,android,sqlite,Java,Android,Sqlite,我正在尝试获取sqlite数据库中的十个最新条目。我一次只需要取一个条目,而不是一次取那十个条目 直到现在,我一直在这样做: "SELECT " + sql + " FROM " + TABLE_NAME + " WHERE _id = (SELECT max(_id)-2 FROM " + TABLE_NAME + ")"; 对于我需要的每个条目,我只是在做…max(_id)-x,但如果某些条目在某个时间被删除,这就不起作用了。id有一些间隙(如1、2

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

直到现在,我一直在这样做:

"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偏移量n”中选择“+sql+”


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

你在这里查过了吗?@Ben好的,但是我如何从十个条目中选择一个呢?你说的如何选择一个是什么意思?Sqlite是一个很好的教程当我像在那个答案中一样查询时,我不是得到了所有十个最新条目的返回吗?我需要从10个条目中选择一个。是的,您的结果将是10个结果(如果您的表中至少存在10个条目)。查看我上面提供的教程-这里解释了如何处理查询结果。