2009-05-20 9 views
12

È possibile esprimere una query come quella riportata di seguito in "SQL Expression Language" utilizzata in SQLAlchemy?Esiste il supporto per l'operatore IN in "SQL Expression Language" utilizzato in SQLAlchemy?

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

Voglio evitare di scrivere la clausola WHERE in testo normale. C'è un modo per esprimere questo simile ai miei esempi qui sotto o in qualsiasi modo che non usa il testo normale?

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

risposta

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

È possibile utilizzare il metodo .in_() con colonne o con attributi Instrumented. Entrambi funzionano.

It is mentioned here sul primo tutorial di SQLAlchemy. operatore

+0

Grazie per la risposta rapida. Un errore nel tuo esempio, _in dovrebbe essere in_. – Mathias

+0

@ Mathias: grazie. – nosklo

+1

Entrambi i collegamenti sono morti. – suzanshakya

Problemi correlati