2009-07-24 39 views
1

Ich möchte x Menge von Elementen aus der DB zu greifen, fragte ich mich, ob es einen Weg der Übergabe einer Liste von Nummern an eine gespeicherte Prozedur mit WHERE IN?MySQL gespeicherte Prozedur Parameter

SELECT item_id, item_description 
FROM items 
WHERE item_id IN (NEED_LIST_OF_IDS_HERE); 

Sollte ich nicht eine gespeicherte Prozedur für diese Abfrage verwenden und nur die SQL in der Anwendung aufbauen?

Oder sollte ich einen separaten DB-Aufruf für jede einzelne item_id machen?

HINWEIS: Elemente ist nicht der tatsächliche Name der Tabelle, also nicht bash mich für eine schlechte Namen Wahl, ich bin nur versteckt Umsetzung.

Antwort

0

Schlechte ungelöste Frage von vor einem Jahr ...

Wenn Sie keine IN-Klausel, so könnte man sicherlich die SQL innerhalb der gespeicherten Prozedur generieren/vorbereiten und dort ausführen. Es ist schwieriger, die IN-Klausel zu parametrisieren.

Wie wäre es, die Liste der IDs weiterzugeben, eine temporäre Tabelle in der gespeicherten Prozedur zu erstellen und dann zur Elementtabelle zu wechseln?

Verwandte Themen