2009-05-20 5 views
12

Можно ли выразить запрос, подобный приведенному ниже, в «языке выражений SQL», который используется в SQLAlchemy?Есть ли поддержка для IN-оператора на языке SQL Expression, который используется в SQLAlchemy?

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

Я хочу избежать написания предложения WHERE в виде простого текста. Есть ли способ выразить это подобно моим примерам ниже или каким-либо образом, который не использует простой текст?

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

ответ

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

Вы можете использовать метод .in_() с колоннами или с атрибутами Instrumented. Оба работают.

It is mentioned here в первом учебнике SQLAlchemy.

+0

Спасибо за быстрый ответ. Опечатка в вашем примере, _in должна быть в_. – Mathias

+0

@Mathias: спасибо. – nosklo

+1

Обе ссылки мертвы. – suzanshakya

 Смежные вопросы

  • Нет связанных вопросов^_^