我正在使用一些遗留代码和从数据库中获取整数值的正确方法。我想这样做:
db = make_session() # this returns a session
q = db.query('count').from_statement(text("""
SELECT count(1) as count FROM mytable
WHERE somevar=:somevar;
""")).params(somevar=1)
return [p[0] for p in q]
返回[81L]
。我也认为值是q[0]
但是提升和异常。在这种情况下使用Sqlalchemy的正确方法是什么,这里只得到一个整数。
答案 0 :(得分:3)
大概你想要.scalar()
。例如,像这样的东西可能是你正在寻找的东西:
db.query(func.count(mytable.id).filter(mytable.somevar == 1)).scalar()