删除表SQLite android中的最后一行

时间:2013-10-25 11:12:50

标签: android sql database sqlite

我正在开发一个Android应用程序,我想在其中一个数据库表中删除最后一行。我已经尝试了下面的代码,但它抛出了语法错误。

 public void deletelatestprofilefromsystemsettings()
{
    String maxid = System_id + "="+"SELECT MAX ("+System_id+") FROM" +TABLE_SYSTEM_SETTINGS;
    getWritableDatabase().delete(TABLE_SYSTEM_SETTINGS, maxid ,null);
}

请帮忙!谢谢!

2 个答案:

答案 0 :(得分:1)

FROM之后缺少空格,子查询必须写在括号中:

String maxid = System_id + "=" +
               "(SELECT MAX("+System_id+") FROM " + TABLE_SYSTEM_SETTINGS + ")";

答案 1 :(得分:-1)

您正尝试在同一查询中使用SELECT执行DELETE。 AFAIK你不应该这样做。您必须首先执行SELECT查询,以便检索所需的ID,然后执行删除。换句话说,执行Cursor c = getWritableDatabase().query(),从光标读取id,然后在getWritableDatabase().delete()中使用它。

另外,在") FROM"之后添加一个空格,因此它变为") FROM "以避免语法错误。