【问题标题】:How to update all rows of a column in SQLite database in Android?如何在 Android 中更新 SQLite 数据库中列的所有行?
【发布时间】:2015-02-06 17:46:37
【问题描述】:

我是 SQLite 数据库的新手。这不是任何其他问题的重复。我将行动态插入到具有标题、标签、日期、位置等列的表中。我在列表视图中向用户显示从今天开始的剩余天数。现在我的问题是,我需要每天更新 sqlite 表中的剩余天数列,以便它根据天递减。如何一次更新剩余天数列的所有行?以及如何根据时间减少/更新它?这是我尝试过的。

    public static final String KEY_REMAINING_DAYS = "remainingdays";
    public static final int COL_REMAINING_DAYS = 10;
    private static final String DATABASE_CREATE_MY_SQL =
                "create table " + MY_TABLE
                        + " (" + KEY_ROW_ID + " integer primary key autoincrement, "
                        + KEY_TAG + " text not null, "
                        + KEY_TITLE + " text not null, "
                        + KEY_DATE + " text not null, "
                        + KEY_LOCATION + " text not null, "
                        + KEY_REMAINING_DAYS + " text not null, "
                        + ");";


public void update_days() {
        String where = "UPDATE "+ MY_TABLE +" SET " + COL_REMAINING_DAYS + " = " + COL_REMAINING_DAYS-1);
        db.rawQuery(where, null);
    }

【问题讨论】:

    标签: java android sqlite sql-update android-sqlite


    【解决方案1】:

    -1 应该是 SQL,比如:

    public void update_days() {
            String where = "UPDATE "+ MY_TABLE +" SET " + KEY_REMAINING_DAYS + " = " + KEY_REMAINING_DAYS  + "-1" );
            db.rawQuery(where, null);
        }
    

    所以得到的查询是:

    UPDATE <MY_TABLE>
       SET <KEY_REMAINING_DAYS> = <KEY_REMAINING_DAYS> -1;
    

    就“根据时间进行更新”而言,您可以在每日闹钟中执行此操作,或者在您进入应用时查看上次完成更新的时间。在此站点上查找有关 AlarmManager 的类似问题。

    【讨论】:

    • 非常感谢。有效!将尝试找到一些逻辑来检查基于时间的更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多