Ricardo Filipe
Ricardo Filipe

Reputation: 445

GET MAX ID ROW OF A TABLE

My question is about how get the max id row of a table... I'm using max function but give me a error

enter image description here

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

Answers (3)

Ricardo Filipe
Ricardo Filipe

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

Aprian
Aprian

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

CL.
CL.

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

Related Questions