2012-04-04 2 views
4

ich zu verwenden Ich versuche in dynamisch erstellte Liste zu verwenden, wo zum Beispiel:Android rawQuery - Gibt es eine Möglichkeit parametrisierte „IN“ für eine Sammlung von Daten

select * from books where id in (123, 120, 125) and bookCover = 'Hardcover' 

ich es mit rawQuery verwenden möchten, und Ich habe SQL in "?" Form, zum Beispiel:

select * from books here id in (?) and bookCover = ? 

ist es eine Möglichkeit, wie in der IN-Klausel des select eine Liste von „IDs“ setzen? oder muss ich vorbereitete Aussagen mit "?" ?

Vielen Dank im Voraus für jede Hilfe. Kein Gesuchter

Antwort

3

- ich kenne keine DB (wie Oracle, SQL Server, SQLite, Postgres etc.), die sieht, was Sie fragen ...

Die nächste Lösung, die Sie erhalten können, ist die IDs einfügen in eine zweite Tabelle und dann eine Unterabfrage in dem IN Teil verwenden ...

MyIDTable Hut 2 Felder QNO (nur eine Taste) und ID (die IDs enthalten, die Sie in Ihren IN wollen ... fügen Sie ersten 3 Reihen mit dem gleichen QNO und den entsprechenden IDs ...

INSERT INTO MyIDTable (QNO, ID) VALUES (3, 120); 
INSERT INTO MyIDTable (QNO, ID) VALUES (3, 123); 
INSERT INTO MyIDTable (QNO, ID) VALUES (3, 125); 

Dann können Sie eine SELECT wie folgt tun:

select * from books where id in (SELECT T.ID FROM MyIDTable T WHERE T.QNO = 3) and 
bookCover = 'Hardcover' 

die im Grunde für diese erlaubt:

select * from books where id in (SELECT T.ID FROM MyIDTable T WHERE T.QNO = ?) and 
bookCover = ? 

Nachdem Sie für diesen bestimmten Satz von IDs getan suchen Sie nach DELETE FROM MyIDTable WHERE QNO = 3 aufräumen .

+0

Hmm, ich hatte Angst, dass das die Antwort sein wird. Ich weiß, es kann in nativer Abfrage im Ruhezustand gemacht werden, aber ... Nun, das ist nicht der Fall :-( – premma

+0

@premma Hibernate macht hinter den Kulissen grundsätzlich das, was ich oben beschreibe (da keine DB-Engine, die ich kenne, dies unterstützt nativ) – Yahia

+0

@premma Bitte vergessen Sie nicht zu upvote/markieren Sie als akzeptiert ansewrs, ​​die helfen (siehe http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) . – Yahia

Verwandte Themen