WHERE IN-Klausel in Android sqlite?

8

Ich kann die WHERE IN-Klausel nicht für die SQLite-Datenbank von android verwenden.

Gibt es eine Möglichkeit, eine Anweisung wie diese in Android auszuführen? :

%Vor%     
fediva 06.06.2011, 22:43
quelle

7 Antworten

8

Sie müssen die Methode rawQuery verwenden:

%Vor%     
Cristian 06.06.2011 22:49
quelle
8

Sie können TextUtils.join(",", parameters) verwenden, um sqlite-Bindungsparameter zu nutzen, wobei parameters eine Liste mit "?" -Platzhaltern ist und die Ergebniszeichenfolge etwa "?,?,..,?" ist.

Hier ist ein kleines Beispiel:

%Vor%     
epool 27.03.2015 21:22
quelle
2

Wenn Sie einen Inhaltsanbieter verwenden, können Sie die Abfragefunktion als solche verwenden:

%Vor%

Beachten Sie, dass ich dies nicht getestet habe, aber laut der Dokumentation sollte dies funktionieren.

    
Dimse 06.06.2011 22:53
quelle
1

Sehen Sie sich diese Antwort an. Es hat mir im ähnlichen Fall geholfen.

%Vor%

Der Hauptpunkt besteht darin, variable Fragezeichen-Platzhalter (?) anzugeben, die Ihren IN-Klauselelementen entsprechen. Und natürlich - Argument für sie als String-Array.

    
Anatoliy 15.10.2012 07:48
quelle
1

Eine andere Möglichkeit, dies zu tun

%Vor%     
Zain Ali 06.07.2012 06:53
quelle
0

Hinzufügen zu Cristian Antwort: Während seine Antwort funktioniert, sollten Sie versuchen, die richtige Art der Abfrage zu verwenden:

db.rawQuery("Select * from table1 where title = ?", new String[]{param1});

Dieser Ansatz kann auch mit der WHERE IN-Klausel verwendet werden, aber die übergebene Zeichenfolge muss das Format 'asd', 'zxc', 'qwe'

haben

So:

%Vor%     
lxknvlk 28.07.2015 21:37
quelle
0

Sie müssen auf diese Weise Rawquery schreiben -

%Vor%     
lotus weaver 24.03.2018 04:23
quelle