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

标签 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 列)。

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

最佳答案

您的代码没问题,但不需要将旧值放入值中。只需输入新值

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

关于android - 如何更新 SQLiteDatabase 中的单个(或多个,但不是全部)列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063001/

相关文章:

android - R 无法解析为变量

android - AutoCompleteTextView 在 React Native 中与 iOS 和 Android 兼容

iphone - 在 Sqlite 中绑定(bind) bool 值

android - 如何从自定义数据库助手创建游标

php - 从 mysql 数据库发送和检索阿拉伯语数据

c# - 如何在 Xamarin 中发送 POST 请求?

sqlite - 避免消息 "-​- Loading resources from .sqliterc"

c# - 将具有特定字符串格式的日期时间添加到 SQLite 数据库

Android SQLiteOpenHelper.onUpgrade 如何处理数据库架构升级

android - 对 CursorLoaders 感到困惑并将它们与自定义 SQLiteOpenHelper 一起使用