Android Sqlite更新并只插入最大的_id

时间:2015-01-04 12:13:55

标签: android sqlite

我试图仅在存在最大ID的情况下更新值:

Cursor c = db.rawQuery("SELECT MAX(_id) FROM test3 ", null);
            if (c.moveToFirst()) {
                db.execSQL("UPDATE test3 SET mac='" + MAC + "',mdp='" + MDP + "'");

但是我的所有行都改变了,并且变得和我之前选择的一样,我只想要最大值来改变

我的数据库定义如下:

 db = openOrCreateDatabase("testDB3", Context.MODE_PRIVATE, null);
    db.execSQL("CREATE TABLE IF NOT EXISTS test3(_id INTEGER PRIMARY KEY,mac VARCHAR,mdp VARCHAR,obj VARCHAR);");

1 个答案:

答案 0 :(得分:2)

我可以在查询下运行并仅更新最大ID:

您可以将上述查询作为单个查询而不是2个查询运行:

UPDATE test3 SET mac='abc', mdp='xyz' where _id=(SELECT MAX(_id) FROM test3 )