我需要构造一个查询,其中结果中的所选列正在更改。如何逐步将列添加到结果中,类似于.filter
:
query = session.query(User).filter(name == 'Hansen').filter(country == 'Spain')
谢谢!
答案 0 :(得分:0)
sqlalchemy Query类具有可以用于此目的的add_columns方法。
cols = ['col1', 'col2', 'col3', 'col4']
q = session.query()
for c in cols:
q = q.add_columns(getattr(MyTable, c))
res = q.all()
顾名思义,该方法将接受多个列表达式。
q.add_columns(*list_of_columns)
Query.add_entity将用于向查询添加orm实体,例如模型类。
q = session.query()
q = q.add_entity(MyTable)
# Fetch objects, not just columns
list_of_objs = q.all()