我正在创建一个论坛应用程序,我目前如果删除一个线程,我将删除所有线程。
是否有一个好的方法或查询来检查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");
}
答案 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");