如何在没有顺序int标识符的情况下仅更新SQlite中的第一行?

时间:2016-10-08 17:44:29

标签: android sqlite android-sqlite

我想仅更新第一行。但我没有主键,任何顺序标识符。

  ContentValues values = new ContentValues();

  values.put(COLUMN_UNAME, c.getUname());
  values.put(COLUMN_PASS, c.getPass());

  db.update(TABLE_NAME,values,???,???);

如何在没有顺序int标识符的情况下仅更新SQlite中的第一行?

2 个答案:

答案 0 :(得分:1)

如果表中只有一行,则可以使用null, null作为最后两个参数,这将更新表中的所有行。

答案 1 :(得分:1)

实际上这很容易实现。每个SQLite表都有一个ROWID

  

WITHOUT ROWID表外,SQLite表中的所有行都有一个64位有符号整数键,用于唯一标识其表中的行。这个整数通常称为" rowid"。 [...]

所以你可以用最小的rowid

来更新行
String where = "rowid=(SELECT MIN(rowid) FROM " + TABLE_NAME + ")";
db.update(TABLE_NAME, values, where, null);