删除在DB中创建的前20行

时间:2016-01-25 02:50:34

标签: android mysql

我创建了一个最近查看的项目表。在那里我想删除前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条是最后一条记录。)

不确定我哪里出错了?

谢谢!

1 个答案:

答案 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
    )