我必须在 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));
并且查询将与插入查询同时执行,以便替换值。
事先谢谢!
答案 0 :(得分:1)
不,ContentValues
只是数据哈希映射的包装器。您可以尝试使用索引来加速查询。