1

也许这个问题已经回答了,但我找不到,所以:

在 SQLiteDatabase 更新方法中,

int android.database.sqlite.SQLiteDatabase.update(String table, ContentValues values, String whereClause, String[] whereArgs)

如果 WHERE 子句不存在会怎样?我的意思是不返回任何行,它会执行正常的插入,还是什么都不做?

编辑

我想我没有正确解释。

假设这个 SQL:

CREATE TABLE weight (weight REAL, date TEXT);

INSERT INTO weight VALUES (78.5,"10/03/2013");
INSERT INTO weight VALUES (68.5,"09/03/2013");
INSERT INTO weight VALUES (79.5,"08/03/2013");

现在假设这段代码:

ContentValues values = new ContentValues();
values.put("weight", 90.2);
db.update("weight",values, "date = '15/03/2013'",null);

注意没有 date = '15/03/2013' 的行,那么,在这种情况下会发生什么(这就是我想要的意思)它会插入或什么都不做?

4

2 回答 2

1

编辑:

它将检查是否有 date = '15/03/2013 的行,如果没有行,则没有行将生效,更新方法将返回 0


如果我理解您的问题, Where claus 是可选的,它可能为空,如果您不提供 where 子句,它将更新表中的所有行。

这只是一个 sql 的东西,就像如果你不提供 where 条件它将更新所有行。文件清楚地表明,

参数

whereClause 更新时要应用的可选 WHERE 子句。传递 null 将更新所有行。

SqlliteData 更新

于 2013-03-17T12:49:00.880 回答
0

如果您不使用该WHERE子句,则表上的所有记录都会受到影响

whereClause更新时要应用的可选 WHERE 子句。传递 null 将更新所有行。

于 2013-03-17T12:49:59.203 回答