【问题标题】:Delete all but top n from database table in SQLite for java/android从 SQLite for java/android 中的数据库表中删除除 top n 之外的所有内容
【发布时间】:2015-10-15 15:37:50
【问题描述】:

我是 java 新手,但我正在尝试编码:

      SQLiteDatabase db = this.getWritableDatabase();
        //db.execSQL("delete from " + TABLE_BOOKMARKS + " where " + KEY_ID + "  not in (select " + KEY_ID + " from " + TABLE_BOOKMARKS + " order by " + KEY_ID + " limit 10)" );
        //db.execSQL("DELETE FROM " + TABLE_BOOKMARKS + " WHERE " + KEY_ID + " NOT IN (SELECT TOP 10 " + KEY_ID + " FROM " + TABLE_BOOKMARKS + ")" );

        db.execSQL("Delete From "+TABLE_BOOKMARKS+"  where "+ KEY_ID  + " not in (Select Top 10 "+ KEY_ID +" from "+ TABLE_BOOKMARKS + " order by " + KEY_ID +")");
        db.close(); // Closing database connection

您可以在代码中看到,我尝试了 3 种不同的方式,但是当我运行它时,我的应用程序返回错误并停止!

我收到了这个错误:

android.database.sqlite.SQLiteException:接近“10”:语法错误:, 编译时:从 id 不在的书签中删除(选择前 10 书签中的 id 按 id 排序)

【问题讨论】:

标签: java android sql sqlite


【解决方案1】:

你可以试试

db.execSQL("Delete From "+TABLE_BOOKMARKS+"  where "+ KEY_ID  + " not in (Select "+ KEY_ID +" from "+ TABLE_BOOKMARKS + " order by " + KEY_ID +" limit 10)");

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2012-01-29
    • 2010-11-26
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多