Android 删除表SQLite中的最后一行
我正在开发一个android应用程序,我想删除数据库表中的最后一行。我尝试了下面的代码,但它抛出了一个语法错误Android 删除表SQLite中的最后一行,android,sql,database,sqlite,Android,Sql,Database,Sqlite,我正在开发一个android应用程序,我想删除数据库表中的最后一行。我尝试了下面的代码,但它抛出了一个语法错误 public void deletelatestprofilefromsystemsettings() { String maxid = System_id + "="+"SELECT MAX ("+System_id+") FROM" +TABLE_SYSTEM_SETTINGS; getWritableDatabase().delete(TABLE_SYSTEM_
public void deletelatestprofilefromsystemsettings()
{
String maxid = System_id + "="+"SELECT MAX ("+System_id+") FROM" +TABLE_SYSTEM_SETTINGS;
getWritableDatabase().delete(TABLE_SYSTEM_SETTINGS, maxid ,null);
}
请帮忙!谢谢 您正试图在同一查询中使用SELECT执行删除。恐怕你不该这么做。您必须首先执行SELECT查询,以便检索所需的id,然后执行删除。换句话说,执行
Cursor c=getWritableDatabase().query()
,从光标读取id,然后在getWritableDatabase().delete()中使用它
另外,在“
中的“”)之后添加一个空格,使其成为“
中的“”),以避免语法错误。在FROM之后缺少空格,子查询必须写在括号中:
public void deletelatestprofilefromsystemsettings()
{
String maxid = System_id + "="+"SELECT MAX ("+System_id+") FROM" +TABLE_SYSTEM_SETTINGS;
getWritableDatabase().delete(TABLE_SYSTEM_SETTINGS, maxid ,null);
}
String maxid=System\u id+“=”+
“(从“+表格系统设置+”)中选择最大值(“+系统id+”)”;
哪个错误,在哪里?对不起,我不是心灵感应者…SQLiteDatabase db=this.getWritableDatabase();Cursor Cursor=db.rawQuery(“从“+表格系统设置,null)”中选择MAX(“+System\u id+”));getWritableDatabase().delete(表\系统\设置,游标.getString(0),null);不错,尽管我认为MAX(column)
返回的是数值而不是字符串。另外,我会将cursor.getString(0)
(或者cursor.getInt(0)
)存储在一个单独的变量中,并在数据之后立即执行cursor.close()
。在DELETE的子查询中进行选择没有问题。