2016-07-23 2 views
1

Ich weiß, wenn ich einen SQLite SELECT durch Ignorieren der Räume der username Spalte in der DB tun will, was ich tun kann:Android SQLiteDatabase Abfrage ignorieren Leerzeichen

SELECT * FROM mytable WHERE REPLACE(username, ' ', '') LIKE '%TO_QUERY%' 

Aber die Schnittstelle von SQLiteDatabase.query() ist:

public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) 

Ich frage mich, wie ich den obigen SQL-Befehl mit dieser Schnittstelle implementieren kann, oder es ist besser, SQLiteDatabase.rawQuery() zu verwenden?

Antwort

1

Sie können dies einfach SQLiteOpenHelper und rawQuery() Methode von SQLiteDatabase

SQLiteOpenHelper in der Klasse dieses

public class DatabaseHelper extends SQLiteOpenHelper 

prüfen Extend verwenden.

private SQLiteDatabase myDataBase; 

einige Spalten auswählen:

Cursor c = myDataBase.rawQuery(
       "SELECT * FROM mytable WHERE REPLACE(username, ' ', '') LIKE '%TO_QUERY%' ;", null); 

Dann wird Ihr Betrieb tun Cursor mit c

etwas

myDataBase.execSQL("UPDATE some_table SET some_column='" + value 
       + "' WHERE some_column LIKE '" + some_value + "'"); 
+0

Dank zu aktualisieren, scheint 'rawQuery()' ist mein bestes Wahl. – stanleyli