我正在开发一个Android应用程序,我想在其中一个数据库表中删除最后一行。我已经尝试了下面的代码,但它抛出了语法错误。
public void deletelatestprofilefromsystemsettings()
{
String maxid = System_id + "="+"SELECT MAX ("+System_id+") FROM" +TABLE_SYSTEM_SETTINGS;
getWritableDatabase().delete(TABLE_SYSTEM_SETTINGS, maxid ,null);
}
请帮忙!谢谢!
答案 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 "
以避免语法错误。