2010-08-09 2 views
4

Я пытаюсь удалить 6 строк из базы данных, используя следующую инструкцию, но я получаю сообщение об ошибке показано нижеУдаление заданного количества строк из базы данных SQLite

getWritableDatabase(). ExecSQL ("DELETE FROM tblname ORDER BY _ID ASC LIMIT 6; ");

Ошибка: Вызванный: android.database.sqlite.SQLiteException: возле "ORDER": ошибка синтаксиса: DELETE FROM tblname

Я попытался переформатирования SQL по-разному, но я не мог получить его работать. Что мне не хватает? Большое спасибо за вашу помощь

ответ

8
DELETE FROM tblname WHERE `_id` IN (SELECT `_id` FROM tblname ORDER BY `_id` ASC LIMIT 6) 

Я думаю, ваша проблема может быть ссылкой на _id, хотя.

+0

Спасибо. Этот точный SQL работал. Я не совсем уверен, почему исходный SQL не работал. Согласно этой документации (для использования LIMIT в DELETE) она должна была работать http://www.sqlite.org/lang_delete.html Еще раз спасибо за вашу помощь. – Satish

4

Параметры LIMIT и ORDER для DELETE в sqlite являются необязательными, и, похоже, они не включены на Android. Borealid SQL выше будет работать нормально даже без кавычек.

Смежные вопросы