python - 如何创建查询并添加列以按顺序选择?
问题描述
我需要构建一个查询,其中结果中的选定列正在更改。如何逐步将列添加到结果中.filter
:
query = session.query(User).filter(name == 'Hansen').filter(country == 'Spain')
谢谢!
解决方案
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()
推荐阅读
- angular - Angular,在 [(ngModel)] 中使用猫王唱歌和 mat-form-field
- django - Django 自定义管理小部件继承 ForeignKeyRawIdWidget
- json - 使用 Scala/Spark 读取 Json 文件
- macos - 在 Mac M1 中使用 make 时出现“ld:未找到架构 arm64 的符号”
- sql - Postgres 三月的结果
- ant - 如何压缩多个子目录并将子目录名称用作 zip 文件名?
- python - 从 python 头函数中删除数据类型信息行
- javascript - 对象数组,将相似对象连接到一个对象
- gremlin - 为 Gremlin 麻袋实施 'max'
- javascript - 如何在 D3.js 中添加自定义 svg 形状