如何更新SQLiteDatabase中的单个(或多个,但不是全部)列?

时间:2016-06-27 20:50:51

标签: android sqlite sqliteopenhelper

我为我的项目使用SQLitDatabase,我通常会通过以下方式更新:

  • 获取一行包含的所有值(让我们说v1,v2和v3)
  • 放回所有值,并替换我需要更新的值。

示例:

我想更新v2

ContentValues values = new ContentValues();
    values.put(v1_COLUMN, v1);        // Old value, gotten earlier
    values.put(v2_COLUMN, v2_new);    // New value, calculated earlier
    values.put(v3_COLUMN, v3);        // Old value, gotten earlier
db.update(TABLE_name, values, "_id=?", new String[]{id});  

我使用这种方法,即使我只需要更新1列(请记住我的一些表有3列以上)。

如何仅更新实际需要更新的列?

1 个答案:

答案 0 :(得分:4)

您的代码没问题,但不需要将旧值添加到值中。只是提出新的价值

ContentValues values = new ContentValues();
values.put(v2_COLUMN, v2_new);    // New value, calculated
db.update(TABLE_name, values, "_id=?", new String[]{id});