【发布时间】:2015-07-09 12:09:44
【问题描述】:
这是我要运行的代码:
open();
database.beginTransaction();
Cursor cursor = database.rawQuery("UPDATE message SET is_read=1 WHERE id = 'user1' AND (mid IN ('msg1','msg2'))",null);
if (cursor != null) {
if (cursor.moveToFirst()) {
<... success ...>
}
cursor.close();
}
database.endTransaction();
close();
它不起作用 - 响应成功,但我的光标没有更新的行。
针对同一数据库的相同查询在纯 SQL 中工作得非常好(我使用的是 sqlitebrowser)。这里发生了什么?
【问题讨论】:
-
试试 AND mid IN ('msg1','msg2')
-
为什么你认为
UPDATE的行为类似于SELECT? -
@EagleEye 感谢您的建议 - 之前尝试过,再次尝试,同样的结果。 @Blackbelt 我所期望的只是光标内的
mUpdateRows大小为 != 0 - 如果您在谈论 moveToFirst - 这只是有人在另一篇文章中建议的内容。我只需要计数