私はデータベースを持っており、そのテーブルの1つに文書へのパスを保存しています。時間から私は特定の拡張子を持つ行を削除する必要があります。私は拡張子を持つ配列を持っていると私は、このようにAndroidのSQLiteで複数の条件を持つ文字列を削除する最も良い方法
public void deletePathsExceptThis(String [] extensions){
SQLiteDatabase db = getWritableDatabase();
String query = "";
for (int i=0; i< extensions.length-1; i++){
query = query.concat(" LOWER(" + ALL_DOCUMENTS_PATH + ") NOT LIKE ('");
query = query.concat(extensions[i]);
query = query.concat("') OR ");
}
query = query.concat(" LOWER(" + ALL_DOCUMENTS_PATH + ") NOT LIKE ('");
query = query.concat(extensions[extensions.length-1]) ;
query = query.concat("')");
db.delete(TABLE_ALL_DOCUMENTS, query, null);
}
を私のデシベルから行を削除することですが、私は疑問に思って、その仕事をするためにいくつかのより多くの、高速で生産性やエレガントな方法があることがありますか?おかげ
さて、手始めのために、私は 'StringBuilder'は[SQLiteQueryBuilderもありString.concat' –
'よりも好ましいと思います](https://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html) - 気にしない - SELECT ... – Fildor
にのみ適しているので、StringBuilderは高速になりますか?私はconcatがStringBuilderを使用するよりも時間がかかったところで比較を見たので、 – Fedor