Форум сайта python.su
версия алхимии 0.4.7
в выражении select нужно использовать несколько условий. соединяю их через and_
l_Select = select( [attr.c.column_id],
and_(attr.c.expression == None,
attr.c.column_id > 0)
)
Офлайн
грубо говоря
filters = []
if f1():
filters.append(attr.c.expression == None)
if f2():
filters.append(attr.c.column_id > 0)
l_Select = select( [attr.c.column_id], and_(*filters))
Офлайн
>>> from sqlalchemy import MetaData, Table, Column, Integer, or_
>>> m = MetaData()
>>> t = Table('foo', m, Column('id', Integer, primary_key = True))
>>> clause = or_()
>>> clause.append(t.c.id == 1)
>>> clause.append(t.c.id == 2)
>>> print clause.compile()
foo.id = :id_1 OR foo.id = :id_2
>>> print clause.compile().params
{'id_2': 2, 'id_1': 1}
>>> print t.select(clause)
SELECT foo.id
FROM foo
WHERE foo.id = :id_1 OR foo.id = :id_2
Отредактировано (Сен. 15, 2008 15:15:24)
Офлайн
спасибо за оба варианта!
проверил, работают.
Офлайн