Как получить id последнего элемента в SQL DB на android?
Собственно есть приложение на android. Подключена база данных. Можно ли как-то получить id последнего элемента в таблице?
Источник: Stack Overflow на русском
Собственно есть приложение на android. Подключена база данных. Можно ли как-то получить id последнего элемента в таблице?
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);
}
В реляционной БД, коей является SQLite, нет понятия первый/последний. Все зависит от способа сортировки/индексирования запроса. Неявно есть, конечно, поле ROWID
, но даже он не гарантирует, что якобы последний является последней вставкой.
А получить последнюю запись в текущем запросе (с некой заданной сортировкой выдачи) можно через:
Cursor cursor=db.rawQuery(query); //некий запрос
сursor.moveToLast();