首页 > 解决方案 > 如何创建查询并添加列以按顺序选择?

问题描述

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

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

谢谢!

标签: pythonormsqlalchemy

解决方案


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

推荐阅读