0

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

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

请帮忙!谢谢!

4

2 回答 2

1

您在 FROM 之后缺少一个空格,并且子查询必须写在括号中:

String maxid = System_id + "=" +
               "(SELECT MAX("+System_id+") FROM " + TABLE_SYSTEM_SETTINGS + ")";
于 2013-10-25T11:22:58.590 回答
-1

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

另外,在 之后添加一个空格") FROM",这样就") FROM "可以避免语法错误。

于 2013-10-25T11:16:35.537 回答