如何更新Android中SQLite数据库中列的所有行?

时间:2015-02-06 17:46:37

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

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

    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);
    }

1 个答案:

答案 0 :(得分:2)

-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;

至于&#34;根据时间更新它,&#34;您是在每日闹钟中执行此操作,还是检查一下您在进入应用时最后一次完成的操作。在此网站上查找有关AlarmManager的类似问题。