Android和SQLite - 从表中检索最大ID

use*_*807 7 sqlite android

我正在尝试创建从我的表中检索最大ID的方法,但我有问题.

这是我的方法.它工作正常,但返回值为0,

public int getLastId() {
    openDB();
    int id = 0;
    final String MY_QUERY = "SELECT MAX(_id) AS _id FROM organize";
    Cursor mCursor = mDb.rawQuery(MY_QUERY, null);  
    try {
          if (mCursor.getCount() > 0) {
            mCursor.moveToFirst();
            id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));
          }
        } catch (Exception e) {
          System.out.println(e.getMessage());
        } finally {
            closeDB();
        }
return id;

}
Run Code Online (Sandbox Code Playgroud)

我能解决这个问题,非常感谢

ern*_*azm 6

重写这一行

id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));

id = mCursor.getInt(mCursor.getColumnIndex(MY_QUERY));
Run Code Online (Sandbox Code Playgroud)

或者更好

id = mCursor.getInt(mCursor.getColumnIndex("_id"));  
Run Code Online (Sandbox Code Playgroud)

看看LogCat,它会告诉你你的问题.


Moh*_*ikh 2

final String MY_QUERY = "SELECT MAX(_id) FROM organize";
Run Code Online (Sandbox Code Playgroud)

只尝试这个