删除前 n 条记录对应的 SQL 语句是:
delete from table
where id
in(select id
from table
order by id
limit n)
其中 table 对应表名,id 表示自增 id 的列名。
在 SQLite 中执行以下代码即可:
String sql = "delete from " + TABLE_NAME +
" where " + ID + " in(" +
"select " + ID + " from " + TABLE_NAME +
" order by " + ID +
" limit " + n + ")";
db.execSQL(sql);
其中 TABLE_NAME 为操作的表名,ID 为自增 id 的列名,n 为删除的条数,db 为 SQLiteDatabase 实例。
另外注意两点:
- SQL 语句写错了的话程序会抛出异常。
- execSQL 方法执行非 select 语句,rawQuery 方法执行 select 语句。注意不要搞混,如果使用 rawQuery 方法来执行 delete 语句,那么 delete 语句就不会生效。