テーブルから2つの最後の要素を取得する必要があります。私の要素のIDは増加しますが、増分ではありません(次の値は常に大きくなりますが、1つ以上の要素が他の人によって作成されている可能性があります)。私は28
(それが動作)と25
を取得したいSQLiteは最後の要素を2番目に取得します
1 4 7 11 14 15 19 25 28
:IDの例
public Long getLastDay(){
Cursor cursor= mDatabase.query(DatabaseHelper.TABLE_DAYS, new String[]{"MAX(" + DatabaseHelper.COLUMN_DAY_ID + ")"}, null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
return (cursor.getLong(0));
}
return Long.parseLong("0");
}
:
は、私がどのように、最後の1のidそれを知っています。
どのようにして2番目の値を取得できますか?
@EDIT:
私のコードは次のとおりです。
public Long getSecondLastDay(){
Cursor cursor= mDatabase.rawQuery("SELECT "+DatabaseHelper.COLUMN_DAY_ID+" FROM " + DatabaseHelper.TABLE_DAYS+ " LIMIT 2", null);
if (cursor != null) {
cursor.moveToFirst();
return (cursor.getLong(0));
}
return Long.parseLong("0");
}
'cursor.moveToLast() ;カーソル.moveToPrevious(); ... ...順番... – Shaishav
その列の最大値ではない 'COLUMN_DAY_ID'を選択し、結果を2つの項目(" LIMIT 2 ")に制限するには、[here](https: //www.sqlite.org/lang_select.html)詳細は – pskink
@pskinkカーソルで何をすればいいのか教えてください。私は 'Cursor cursor = mDatabase.query(DatabaseHelper.TABLE_DAYS、new String [] {" SELECT * FROM "+ DatabaseHelper.COLUMN_DAY_ID +" LIMIT 2 "}、null、null、null、null、null)のようなものを使用する必要があります。 ?またはこの値はどこですか? – barmi