根据两个条件删除sqlite表中的特定记录:_id和column

时间:2015-08-05 16:33:54

标签: android sqlite

我为我的Android应用程序创建了一个sqlite表,这个表有5列多行,列为:_id,column1,column2,column3,column4。

我想删除一个特定的记录,例如存储在column3中的对应于_id的记录(在另一个类中是getter和setter,为此我将这个类命名为" TableHandler" )

我想我有点困惑,以下是我的计划,但是对于第3列,我不确定应该是什么参数,我只想删除对应于该列位置的任何内容_id

 public void deleteValueColumn3(TableHandler value){
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_NAME, KEY_ID + " = ? AND " + KEY_COLUMN3 + " = ?",
                new String[] {String.valueOf(value.getID()), ?????????);
        db.close();

    }

????????是因为我被困在那里,也许整个方法需要重写,我很感激你的意见。

由于

3 个答案:

答案 0 :(得分:1)

如果要删除整个记录,只需在delete方法中使用记录的_id,因为这是表的主键,因此是唯一的。如果你想保留记录,你总是使用SQLiteDatabase.update方法,指定null作为将取代column3值的新值;检查column3声明没有NOT NULL标记,否则很容易引发异常。

答案 1 :(得分:0)

SQLite不允许您删除特定行的列。 您只能删除数据的ROWS(删除列_ID = 1的行)。

Here是关于SQL的快速教程。

答案 2 :(得分:0)

如何使用null值更新该列,而不是使用delete()

ContentValues cv = new ContentValues();
cv.putNull(KEY_COLUMN3);

db.getWritableDatabase().update(
        TABLE_NAME,
        cv,
        KEY_ID + "=?",
        new String[]{String.valueOf(keyIdValue)});