2011-10-11 98 views
1

我想删除有偏移量的有限数量的行,但我只设法删除整个表。Android Sqlite:使用LIMIT和OFFSET删除

我尝试以下方法:

1. DELETE FROM tblname ORDER BY _id LIMIT N OFFSET M 
2. DELETE FROM tblname WHERE `_id` IN (SELECT `_id` FROM tblname ORDER BY `_id` ASC LIMIT ? OFFSET ?) 

第一条语句给了一个已知的错误:Error: Caused by: android.database.sqlite.SQLiteException: near "ORDER": syntax error: DELETE FROM tblname

The second statement wipes the entire table.

我在做什么错?什么是好的选择?

谢谢!

回答

0

SQLite对DELETE语句中的ORDER和LIMIT的支持是可选的,可能不会内置到您正在使用的库中。请参阅http://www.sqlite.org/lang_delete.html

+0

'什么是:String deleteWithOffset =“DELETE FROM'tableName'WHERE'_id'IN(SELECT'_id'FROM'tableName'ORDER BY'_id'ASC LIMIT?OFFSET?)”; db.execSQL(deleteWithOffset,new String [] {String.valueOf(numberOfLocations),String.valueOf(firstLocationOffset)});' – Alex