检查两个项目是否相等

时间:2017-11-16 14:02:14

标签: android android-sqlite

我正在创建一个论坛应用程序,我目前如果删除一个线程,我将删除所有线程。
是否有一个好的方法或查询来检查UserId == ThreadId?

我目前的代码:

public void deleteThread() {
    SQLiteDatabase db = this.getWritableDatabase();
    // Delete All Rows
    db.delete(TABLE_THREAD, null, null);
    db.close();

    Log.d(TAG, "Deleted all Thread info from sqlite");
}

2 个答案:

答案 0 :(得分:1)

您需要将正确的值传递给well-documented delete method,以便将删除范围缩小到数据库表中所有条目的子集。

public void deleteThreadById(String threadId) {
    SQLiteDatabase db = this.getWritableDatabase();
    String whereClause = "threadId = " + threadId;
    db.delete(TABLE_THREAD, whereClause, null);
    db.close();
}

通过userId删除给定用户的所有线程将类似,但可能在论坛软件中没有意义。

这就是SQL的一般工作方式,如果你不熟悉基础知识就开始开发有点可怕。

答案 1 :(得分:1)

像这样;

public void deleteThread(String threadName) {
    SQLiteDatabase db = this.getWritableDatabase();
    try {
        db.delete(MYDATABASE_TABLE, "name = ?", new String[]{threadName});
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        db.close();
    }
}

这些行的长度,查询数据库以查找具有与参数匹配的列的特定行。

例如,删除name列为“Hello World”的行;

deleteThread("Hello World");