【问题标题】:How to get last record from table SQLite如何从表 SQLite 中获取最后一条记录
【发布时间】:2020-02-29 15:05:46
【问题描述】:

我在接收来自 Android SQLite 中表的最后一个数据时遇到问题。

添加值效果很好,但我很难从表中接收最后日期,这里是代码:

int getKoniec() {
    SQLiteDatabase db = this.getReadableDatabase();
    String sortOrder = TABELA_koniec + " DESC LIMIT 1";

    Cursor cursor = db.query(
            TABELA,
            new String[] { "koniec" },             
            null,              
            null,          
            null,                  
            null,                   
            sortOrder               
    );

    if(cursor != null) {
        cursor.moveToFirst();
    }

    int koniecINT = cursor.getInt(0);
    Log.v("VALUE: ","" + koniecINT);
    cursor.close();

    return koniecINT;
}

在添加值 10,9,8,7.. 时,输出(返回 koniecINT)始终为 10。 你能帮我解决这个问题吗?谢谢

【问题讨论】:

  • 到底是什么问题?
  • 它没有返回正确的值,例如我添加 10 9 8 7 并且 koniecINT 总是返回 10
  • 你期望得到什么,为什么?
  • 期望:加 int 10 然后调用函数接收,结果:10,加 9 然后调用函数接收,结果:9。
  • 它是计数器,我需要将计数器中的数据存储到数据库中

标签: android sql sqlite


【解决方案1】:

试试这个查询

select * from table_name order by row_id desc limit 1

mCursor.moveToLast();

【讨论】:

  • 不保证最大 row_id 是插入的最后一行:sqlite.org/autoinc.html 还有你的第二个查询为什么你会返回最后插入的行?
猜你喜欢
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 2022-10-01
  • 2012-02-13
  • 2011-08-18
相关资源
最近更新 更多