SQLAlchemy表达式语言首先或一个

时间:2017-11-01 23:53:10

标签: python sqlalchemy

我正在使用sqlalchemy表达式语言(即Core)。我正在尝试构建一个只返回一个结果的查询。

我想做

query = select([table]).where(cond).one()

query = select([table]).where(cond).first()

但这只会产生

AttributeError: 'Select' object has no attribute 'one'

我最接近的是

query = select([table]).where(cond).limit(1)

但这并不完全令人满意,因为我得到了一个结果列表,我想要一个结果。我可以通过插入额外的逻辑来解决这个问题,但我会更乐意找到一种干净利落的方法。我也不想使用纯文本查询。

有什么想法吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

onefirst是ORM查询对象上可用的方法。仔细观察后,您可以看到它们导致执行查询,然后发布流程以获取第一个/唯一的条目和错误检查等。

我检查过的SQL方言实际上似乎没有为查询构建这个功能(我认为他们这样做了)。他们有limit或类似的东西。

唯一的选择是使用limit和一些逻辑或某些调用来执行或结果。