Ich habe eine Datenbank und in einer seiner Tabellen speichere ich Pfade zu Dokumenten. Von Zeit zu Zeit muss ich Zeilen mit bestimmten Erweiterungen löschen. Ich habe ein Array mit Erweiterungen und ich bin Löschen von Zeilen aus meiner db auf diese WeiseDie beste Methode zum Löschen von String-Zeilen mit mehreren Bedingungen in SQLite in Android
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);
}
Aber ich frage mich, kann es einige weitere schnelle, produktive oder elegante Möglichkeiten, um die Arbeit zu tun? Dank
Nun, für Vorspeisen, ich glaube, ein 'StringBuilder' wird bevorzugt über' String.concat' –
Es gibt sogar eine [SQLiteQueryBuilder ] (https://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html) - Nevermind - nur für SELECT ... – Fildor
so StringBuilder wird schneller sein? Weil ich einige Vergleiche sah, bei denen concat weniger Zeit in Anspruch nahm als StringBuilder zu verwenden – Fedor