在我的数据库表中,我有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.我在哪里错了?
答案 0 :(得分:1)
您的更新语句可能会一次更新多行。
每次在db2.update
循环中调用for
时,它可能会覆盖posizione>0
的所有行,其值为cv1
中的当前值。