问题很简单。你有一个数据库,你有一个表,你有一个属性。 您要做的是连接到数据库,在表中查询特定属性表的内容的最大值。
到目前为止我尝试的是:
attr_name = 'foo'
meta = MetaData()
meta.reflect(bind=self._engine)
obj_table = meta.tables[table_name]
print("<< select max(attr_name) from obj_table >>")
我想要做的是打印出最大值。我尝试了会话,getattr ..毫无头绪。我只想从一个名称通过参数传递的列中获取该表的最大值(我不能使用点表示法)。
有任何线索吗?
答案 0 :(得分:1)
from sqlalchemy import select, func
col = getattr(obj_table.c, attr_name)
q = select([func.max(col)], obj_table)
with self._engine.connect() as conn:
res = conn.execute(q)
max_value = res.fetchone()[0]
这里重要的是通过obj_table.c
(或obj_table.columns
)访问表格列。