我必须在我的SQLite 数据库中插入很多行,并且对于某些表,必须使用另一个表的值将每行的特定值转换为另一个。实际上,我有这个运行良好的功能:
public void myFunction( String tableName, String attrName, ContentValues currentVal ) {
SQLiteDatabase database = this.getReadableDatabase();
Cursor c = database.rawQuery("SELECT colName FROM "+tableName+" WHERE "+tableName+".otherColName = " + currentVal.getAsString(attrName), null);
Long realValue = null;
if( c.moveToFirst() ) {
realValue = c.getLong(0);
}
if( c != null ) c.close();
currentVal.put( attrName, realValue );
}
但是,这真的很耗时,因为这部分:
if( c.moveToFirst() ) {
realValue = c.getLong(0);
}
所以我想知道是否有办法直接在 ContantValue 的值中设置查询,如下所示:
currentVal.put( attrName, "SELECT colName FROM "+tableName+" WHERE "+tableName+".otherColName = " + currentVal.getAsString(attrName));
并且查询将与插入查询同时执行以替换值。
预先感谢您!