如何在android sqlite数据库中更新新行

如何在android sqlite数据库中更新新行,android,mysql,database,sqlite,sql-update,Android,Mysql,Database,Sqlite,Sql Update,有人能给我指路吗。 我有一个android应用程序。它接受每日用户输入的值。我希望直到同一天的同一天,用户可以在数据库中输入n个重新输入值,打开或关闭应用程序,但值只会更新到同一天,比如2014年10月22日 现在我已经在sqlite数据库中插入了日期值。但是,如果我只是通过用户输入的值来更新它,那么只会创建一行,即使第二天更改了日期,也会得到更新 但如果我再次插入日期,则会创建我实际需要的下一行。 我的问题是:现在如何在最近的日期更新我的sqlite数据库。 我的复选框中的用户值更新正在通过此

有人能给我指路吗。 我有一个android应用程序。它接受每日用户输入的值。我希望直到同一天的同一天,用户可以在数据库中输入n个重新输入值,打开或关闭应用程序,但值只会更新到同一天,比如2014年10月22日

现在我已经在sqlite数据库中插入了日期值。但是,如果我只是通过用户输入的值来更新它,那么只会创建一行,即使第二天更改了日期,也会得到更新

但如果我再次插入日期,则会创建我实际需要的下一行。 我的问题是:现在如何在最近的日期更新我的sqlite数据库。 我的复选框中的用户值更新正在通过此方法进行

public long send(boolean a) {
        ContentValues cv = new ContentValues();

        cv.put(SEND_Today, a);

    return ourDatabase.update(MY_DAILYTABLE, cv, DATE + "=" + "date", null);
它会更新所有行,因为每一行都包含日期列。 我想要这样的东西

ourDatabase.update(My_DAILYTABLE , cv , "(select MAX(date) from My_DAILYTABLE )" , null;
     update dailydata set daily = 10 where date = (select max(date) from dailydata) // because I know sqlite run this query successfuly 
但无论我写什么查询,我都会出错。
任何人都可以指导我一个正确的查询来实现这个功能。只需要知道Android SQLite中的写更新查询

您必须给出整个WHERE子句,也就是日期=:

你可以这样做:

应:

或使用rawQuery:


让我试着这样做。请检查我问题中的第一个方法,在那里我得到一个布尔值。布尔值将插入1,如果为真,否则为0。我想将此布尔值存储在数据库中的date=maxdate列中,以便在每天更新的日期保存它。我也尝试过你刚才在编辑的答案中定义的方式。它不会占用用户价值。如果您给出类似字符串sql=update…+a+其中日期=。。它不起作用。你可以尝试使用1和0,而不是true和false。Shahadat Sarker先生这不是我的问题,我应该使用0或1或其他值。因为我有复选框,如果选中此复选框使布尔值为true,则此表中的存储为n,否则未选中此复选框将给出0并更新其他数据库。但不管值是什么,我只希望用户输入的值能够获取、存储和更新我的数据库。我只是在询问与ANDROID相关的简单sqlite更新查询。
ourDatabase.update(My_DAILYTABLE, cv, DATE+" = (select...)", null);
db.update(DB_TABLE, contentValues, DB_TABLE_ROW_NAME + " = ? ", new String[] { WHERE_DB_TABLE_ROW_VALUE });
ourDatabase.update(MY_DAILYTABLE, cv, DATE + " =? " , new String[] { yourMaxDate });
String sql = "update dailydata set daily = 10 where date = (select max(date) from dailydata)";
Cursor cursor = db.rawQuery(sql, null);
if (cursor2.moveToFirst()) {
    // can get column value as select query
}