我创建了一个最近查看的项目表。在那里我想删除前20项如何删除它们?
首先在这里意义上创建了前20个项目。
我知道查询:
DELETE FROM table ORDER BY id DESC LIMIT 20,18446744073709551615; (这是随机数)
如何使用DB.Dlete
以Android格式编写此内容SQLiteDatabase db = this.getWritableDatabase();
//DELETE FROM table ORDER BY id DESC LIMIT 20, 18446744073709551615;
db.delete(TABLE_RECENT_VIEWED, "ORDER BY " + KEY_RECENTVIEWED_ID_LOCAL + " DESC LIMIT 10, 18446744073709551615", null);
db.close();
我一直得到E / SQLiteLog:(1)接近" ORDER":语法错误
有人可以指导我只删除前20条记录吗? (例如我有40条记录,其中1条是第一条记录,40条是最后一条记录。)
不确定我哪里出错了?
谢谢!
答案 0 :(得分:0)
你想要什么:删除 FIRST 20 ROWS
首先,您必须通过以下方式获取行:
SELECT Id
FROM table
ORDER By Id ASC
LIMIT 20
如果你真的想要前20行,你应该按顺序使用升序(ASC
)。如果你使用降序(DESC
),那将是最后20行。
之后,您现在可以通过以下方式删除记录:
DELETE FROM table
WHERE Id IN (
SELECT Id
FROM table
ORDER By Id ASC
LIMIT 10
)