我在SQLite数据库中有一个表,该表由几个int组成,我想在添加新行之前检查对是否已经存在。

我有这个函数,它从表TableName(id1,id2)返回数据:

public Cursor getIds() {
        return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
    }


在另一堂课中,我有这些:

int int1 = 14
int int2 = 2564

if (????) {
        m.addToTable(int1, int2);
} else {
        //Datas already exists
}


我需要怎么做才能将int1与列id1中的值进行比较,以及将int2与列id2中的值进行比较?

最佳答案

创建此方法:

public boolean existIds(int id1, int id2) {
    Cursor c = db.rawQuery(
            "SELECT * FROM " + TABLE_NAME + " WHERE id1 = ? AND id2 = ?",
            new String[]{String.valueOf(id1), String.valueOf(id2)}
    );
    boolean result = c.getCount() > 0;
    c.close();
    return result;
}


现在,您可以在代码中使用它:

int int1 = 14
int int2 = 2564

if (!existIds(int1, int2)) {
    m.addToTable(int1, int2);
} else {
    //do something because the ids already exist
}

08-05 06:45