Удалить последнюю строку в таблице Android

Мой вопрос довольно прост. У меня есть таблица с, скажем, х строк, с каждым идентификатором, но я не знаю, сколько у меня строк. Теперь я хочу удалить последнюю строку в моей таблице по какой-то причине... Есть ли простой способ сделать это в Android? Я пытался использовать last_insert_rowid в моем предложении where... но пока не повезло... Есть идеи сделать это с помощью инструментов базы данных sqlite для Android?

1 ответ

Решение

Я предполагаю, что last_insert_rowid означает, что вы говорите о БД.

DELETE FROM test WHERE id = (SELECT MAX(id) FROM test);

Я видел этот пост и думаю, что смогу помочь, если у кого-то возникнет такая же проблема.

Я перевел курсор в последнюю строку и получил его идентификатор, превратив его в строку для запроса db.delete.

Вы можете иметь одну строку в базе данных, но ее ID может быть больше 1.

Для моего приложения я использовал Contract класс и реализован BaseColumns (так же, как на веб-сайте разработчика Android)

Надеюсь, это помогло ^^

//go to the last row
cursor.moveToLast();

//get the index ID of the last row
int lastItemId = cursor.getInt(cursor.getColumnIndex(ShiftsContract.Entry.COLUMN_NAME_ID));

//turn it into a string
String slastItemId = String.valueOf(lastItemId);

//define the column from which you want to delete
String where = ShiftsContract.Entry.COLUMN_NAME_ID + "=?";

//from the selected column delete the retrieved ID
String[] args = {slastItemId};

db.delete(ShiftsContract.Entry.TABLE_NAME, where, args);
Другие вопросы по тегам