如何创建查询并添加列以进行顺序选择?

时间:2019-09-10 15:17:29

标签: python orm sqlalchemy

我需要构造一个查询,其中结果中的所选列正在更改。如何逐步将列添加到结果中,类似于.filter

query = session.query(User).filter(name == 'Hansen').filter(country == 'Spain')

谢谢!

1 个答案:

答案 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()