我在我的 Android 项目中使用 sqlite。 我可以成功读/写,但想选择 Avenue 表的最大记录。 我的代码:
Cursor c = db.rawQuery("SELECT MAX([Id]) FROM [Avenue];", null);
c.moveToFirst();
String result = c.getString(0);
但是返回空值!
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
要获取表的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;
}