1

这个问题解释得很简单。你有一个数据库,你有一个表,你有一个属性。您要做的是连接到数据库,查询该表以获取特定属性表的内容的最大值。

到目前为止我尝试的是:

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 .. 没有线索。我只想从具有由参数传递的名称的列中获取该表的最大值(我不能使用点表示法)。

有什么线索吗?

4

1 回答 1

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)访问表列。

于 2013-11-05T19:39:41.220 回答