2016-06-18 26 views
1

ich eine Datenbank in einem Android-App habe und die folgenden sind die Spalten:wenn eine Zeichenfolge innerhalb des in einer Spalte eingefügt String enthalten ist

public class DBhelper extends SQLiteOpenHelper { 
    public static final String COL_TIPO = "ColonnaTipo"; 
    public static final String COL_DIFFICOLTA="ColonnaDifficolta"; 
    public static final String COL_INGREDIENTI = "ColonnaIngredienti"; 

    //code 
} 

Ich benutze diese Funktion, um eine Abfrage zu machen darauf (TAB ist der Name der Tabelle):

public Cursor query_filtri(String[] param, String[] p2) { 
    String whereClause=""; 
    String[] whereArgs=new String[50]; 
    whereClause=COL_TIPO+"=? AND "+COL_DIFFICOLTA+"=?"; 
    whereArgs=new String[] {param[0],param[1]}; 

    return getWritableDatabase().query(TAB,null,whereClause,whereArgs,null,null,null); 
} 

In param[] gibt die Werte von COL_TIPO und COL_DIFFICOLTA sind, die ich bin auf der Suche, und es funktioniert.

In p2[] gibt es 2 Strings: p2[0] = "hi", p2[1]= "try". Ich würde die Abfrage ändern, um die Spalten zu erhalten, die in COL_INGREDIENTI die Welten hi und try enthält.

Zum Beispiel:

Ich würde versuchen, diese

COL_INGREDIENTI "hi, would you try?" 

zu erhalten und nicht diese

COL_INGREDIENTI "hi, how are you?" 

Wie kann ich die Abfrage ändern? Gibt es eine Möglichkeit, die Groß-/Kleinschreibung nicht zu ändern?

Antwort

1

können Sie hinzufügen:

AND COL_INGREDIENTI like '%hi%' and COL_INGREDIENTI like '%try%' 

Von the documentation:

Der LIKE-Operator ist Groß- und Kleinschreibung standardmäßig für Unicode-Zeichen, die über den ASCII-Bereich sind. Zum Beispiel ist der Ausdruck ‚a‘ LIKE ‚A‘ TRUE aber ‚æ‘ LIKE ‚Æ‘ FALSCH

Also, wenn Sie Zeichen in de ASCII-Bereich verwenden Sie brauchen sich nicht um die Sorgen Fall