Как получить id последнего элемента в SQL DB на android?

Рейтинг: 0Ответов: 2Опубликовано: 14.01.2015

Собственно есть приложение на android. Подключена база данных. Можно ли как-то получить id последнего элемента в таблице?

Ответы

▲ 4Принят
SELECT * FROM MYTABLE ORDER BY column DESC LIMIT 1;

или

SELECT * 
    FROM    MYTABLE
    WHERE   ID = (SELECT MAX(ID)  FROM TABLE);

или вроде такого:

String query = "SELECT ROWID from MYTABLE order by ROWID DESC limit 1";
Cursor c = db.rawQuery(query);
if (c != null && c.moveToFirst()) {
    lastId = c.getLong(0); 
}
▲ 2

В реляционной БД, коей является SQLite, нет понятия первый/последний. Все зависит от способа сортировки/индексирования запроса. Неявно есть, конечно, поле ROWID, но даже он не гарантирует, что якобы последний является последней вставкой.

А получить последнюю запись в текущем запросе (с некой заданной сортировкой выдачи) можно через:

Cursor cursor=db.rawQuery(query); //некий запрос
сursor.moveToLast();