我正在使用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)
但这并不完全令人满意,因为我得到了一个结果列表,我想要一个结果。我可以通过插入额外的逻辑来解决这个问题,但我会更乐意找到一种干净利落的方法。我也不想使用纯文本查询。
有什么想法吗?非常感谢。
答案 0 :(得分:0)
one
和first
是ORM查询对象上可用的方法。仔细观察后,您可以看到它们导致执行查询,然后发布流程以获取第一个/唯一的条目和错误检查等。
我检查过的SQL方言实际上似乎没有为查询构建这个功能(我认为他们这样做了)。他们有limit
或类似的东西。
唯一的选择是使用limit
和一些逻辑或某些调用来执行或结果。