在我的数据库表中,我有 7 条记录。 现在我想通过 WHERE 子句更新记录。 首先统计记录,根据一个子句
int pos = 0;
String SQL = "SELECT COUNT(posizione) FROM operatori WHERE posizione>0;";
final Cursor cur = db2.rawQuery(SQL, null);
while (cur.moveToNext()) {
pos = cur.getInt(0);
}
cur.close();
//then, with a for loop, update all the records based on a WHERE clause
for (int i = 1; i <= pos; i++) {
ContentValues cv1 = new ContentValues();
cv1.put(OperatoriTable.POSIZIONE, i);
db2.update(OperatoriTable.TABLE_NAME, cv1, OperatoriTable.POSIZIONE + ">0", null);
}
db2.close();
但是,例如,如果 pos
等于 5,则应输入数字 1、2、3、4、5。相反,它总是插入 1。我哪里错了?
最佳答案
您的更新语句可能一次更新多行。
每次您在 for
循环中调用 db2.update
时,它可能会用当前在 中的值覆盖所有
.posizione>0
的行CV1
关于Android数据库更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301130/