我有一個數據庫,並在其中的一個表中存儲了文檔的路徑。我需要刪除具有特定擴展名的行。我有一個擴展陣列,我從我的分貝這樣在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'優於'String.concat' –
甚至有一個[SQLiteQueryBuilder ](https://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html) - Nevermind - 只適用於SELECT ... – Fildor
所以StringBuilder會更快?因爲我看到一些比較concat花費的時間少於使用StringBuilder – Fedor