2009-05-20 8 views
12

Ist es möglich, eine Abfrage wie die folgende in der in SQLAlchemy verwendeten "SQL Expression Language" auszudrücken?Gibt es Unterstützung für den IN-Operator in der "SQL Expression Language", die in SQLAlchemy verwendet wird?

SELECT * FROM foo WHERE foo.bar IN (1,2,3)

Ich möchte vermeiden, die WHERE-Klausel im Klartext zu schreiben. Gibt es eine Möglichkeit, dies auszudrücken, ähnlich wie meine Beispiele unten oder in irgendeiner Weise, die keinen Klartext verwendet?

select([foo], in(foo.c.bar, [1, 2, 3]))
select([foo]).in(foo.c.bar, [1, 2, 3])

Antwort

19
select([foo], foo.c.bar.in_([1, 2, 3])) 

können Sie die .in_() Methode mit Spalten verwenden oder mit Instrumented Attributen. Beide arbeiten.

It is mentioned here auf SQLAlchemy's erstes Tutorial.

+0

Danke für die schnelle Antwort. Ein Tippfehler in Ihrem Beispiel, _in sollte in_ sein. – Mathias

+0

@Mathias: Danke. – nosklo

+1

Beide Links sind tot. – suzanshakya