【问题标题】:Syntax Error (code1) when trying to delete the last row from an SQLite Database尝试从 SQLite 数据库中删除最后一行时出现语法错误(code1)
【发布时间】:2014-09-13 16:56:33
【问题描述】:

我正在尝试从 SQLite 数据库表中删除最后一行,但我不断收到错误消息。有人能找到我的语法错误吗?

查找 MAXID

private String MAXID = COLUMN_ID + "=" + "SELECT MAX("+COLUMN_ID+") FROM "+TABLE_NAME+")";

删除站点

public void deleteLastRow(){
    try{
        ourDatabase.delete(TABLE_NAME, MAXID, null);

    }
    catch(Exception e){
        e.printStackTrace();
        Log.e("Deleteing last row", e.toString());
    }
}

错误日志

 09-13 12:53:14.570: E/Deleteing last row(2045): android.database.sqlite.SQLiteException: near "SELECT": syntax error (code 1): , while compiling: DELETE FROM gradest WHERE _id=SELECT MAX(_id) FROM gradest)

【问题讨论】:

    标签: android sqlite delete-row


    【解决方案1】:

    子查询必须总是用括号括起来:

    DELETE FROM gradest WHERE _id = (SELECT MAX(_id) FROM gradest)
    

    【讨论】:

    • 一开始我少了一个括号!非常感谢!
    猜你喜欢
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多