使用sqlite选择最大id列

问题描述 投票:0回答:2

我在我的 Android 项目中使用 sqlite。 我可以成功读/写,但想选择 Avenue 表的最大记录。 我的代码:

  Cursor c = db.rawQuery("SELECT MAX([Id]) FROM [Avenue];", null);
  c.moveToFirst();
  String result = c.getString(0);

但是返回空值!

android sqlite
2个回答
3
投票
public int getLastID()
{
    SQLiteDatabase database=this.getReadableDatabase();
    Cursor cursor = database.rawQuery("SELECT MAX("+COL_NAME+") FROM "+TABLE_NAME, null);
    int maxid = (cursor.moveToFirst() ? cursor.getInt(0) : 0);
    return maxid;
}

这应该为您提供表中的最后/最大 ID


0
投票

要获取表的ID的最大值,您可以这样编写代码:

public static final String TABLE_NAME = "MY_TABLE";
public static final String KEY_ID = "id";

@SuppressLint("Range")
public int getMaxId() {
    String selectQuery = String.format("SELECT MAX(%s) as MAX_ID FROM %s", KEY_ID, TABLE_NAME);

    SQLiteDatabase db = offlineDatabaseHandler.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    int id = -1;
    if(cursor.moveToFirst()) {
        id = cursor.getInt(cursor.getColumnIndex("MAX_ID"));
    }
    return id;
}
© www.soinside.com 2019 - 2024. All rights reserved.