繁体   English   中英

SQL炼金术查询单列

[英]SQL alchemy query a single column

我确信之前已经回答过这个问题,我看到了一些相关的答案,但似乎没有一个是我面临的问题。 我正在使用 SQL Alchemy 模型,该模型在下面使用 SQL 服务器数据库,并且我正在使用它通过会话查询数据库。 正常查询等工作正常,没有错误。 但是,当我只要求一个字段而不是所有字段时,它会给我一个错误(见下文)。 基本上归结为最简单的我有一个像这样的模型:

class FactoryShop(Base):
   # case insensitive, refers to the actual table in the DB called factoryshop
   __tablename__ = 'factoryshop'
   ID = Column(Integer, primary_key=True, autoincrement=True)
   Name = Column(String(255))
   Parts = Column(Integer)
   Strength = Column(Integer)
   Average = Column(Float)
   ...

使用会话,我可以像这样查询所有列:

>>> session.query(FactoryShop).filter(FactoryShop.Parts==20000)
<sqlalchemy.orm.query.Query object at 0x10578c280>

但是,如果我尝试只要求像下面这样的名称,则会出现很长的错误。 我搜索了涉及“可选择”的特定错误,但没有找到相关答案。

>>> session.query(FactoryShop.Name).filter(FactoryShop.Parts==20000)
AttributeError: Neither 'AnnotatedColumn' object nor 'Comparator' object has an attribute 'selectable'

如果已经有答案,请指向我,我将删除此答案。

您没有正确查询它。 但是你们很亲近。

result = session.query(FactoryShop).filter(FactoryShop.Parts==20000).first()

然后,您可以调用result.Name来获取该 FactoryShop 对象的名称。

苏雷什耆那教| VTNatSec 财务总监 | sjain@vtnatsec.org

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM