Reputation: 445
My question is about how get the max id row of a table... I'm using max function but give me a error
Here is my code
public static long getLastIdQuotaAdded(Context context){
long id;
Cursor cursor;
String selection = null;
String[] selectionArgs = null;
selection = "MAX(" + C_ID + ")";
cursor=context.getContentResolver().query(URI, ALL_COLUMNS, selection, selectionArgs, null);
id = cursor.getLong(cursor.getColumnIndex(C_ID));
return id;
}
Thank you for yout help... :)
Upvotes: 3
Views: 11154
Reputation: 445
Here is my solution to get max id of a table....
public static long getLastIdQuotaAdded(Context context){
Cursor cursor;
String selection = null;
String[] selectionArgs = null;
selection = "SELECT MAX("+C_ID+") FROM sessaoquota";
cursor=context.getContentResolver().query(URI, ALL_COLUMNS, selection, selectionArgs, null);
if(cursor.moveToFirst())
do{
idMax = cursor.getInt((0));
}while(cursor.moveToNext());
return idMax;
}
Upvotes: 0
Reputation: 1728
there is a table named sqlite_sequence
in SQLITE
that is used to store the auto_increment_key
.
this is the query to get latest auto_increment_key
values.
Cursor cursor = db.rawQuery("SELECT seq FROM sqlite_sequence WHERE name=?",
new String[] { TABLE_NAME });
int last = (cursor.moveToFirst() ? cursor.getInt(0) : 0);
Upvotes: 3
Reputation: 180280
Your query (even the part that is visible) is not valid SQL.
To get the maximum value of a specific column, use something like this:
SELECT MAX(_id) FROM mytable;
In SQLite, if your ID is the Row ID (see the documentation), you can just do:
SELECT last_insert_rowid();
Upvotes: 4