2016-05-10 26 views

答えて

2

Jwodderの答えは、確かに、戻ります最初の結果はスカラーですが、SQLAlchemyはあなたのニーズに合った他の関数をいくつか提供しています。すべてをリストして説明しました。

first()最初の行が返されます。行が返されない場合はNoneが返されます。

one()は、1行を引っ張ってくるが、それは一列のみを引く必要があります:あなたのクエリから返される行数が1

one_or_none()ない場合はそれが出てエラーになり、本質的にone()を行うが、その代わりにerroringのだろう行が返されない場合は、Noneを返します。複数の行が返された場合でもこれはエラーになります。 、すべてのhttp://docs.sqlalchemy.org/en/latest/orm/query.html

3

first()があります:

first() 1の制限を適用し、スカラー

したがってとして最初の結果を返します:

thing = thing.query.filter_by(id=thing_id).first() 
2

まず同意し、他の回答をサポートしています。

これらのすべてのドキュメントをここで見つけることができます。

ただし、クエリはprimary key列のようです。このような場合、このようなクエリを作成する最も簡単な方法は、get()

thing = Thing.query.get(thing_id) 
+0

ニース!私は実際にこれをやりたがっています: 'Thing.query.with_entities(Thing.foo).filter_by(id = thing_id).limit(1).all()。[0]'、 '.get () ' –

+1

実際には、' get'はオブジェクト自体に対してのみ動作し、プライマリキーに対してのみ動作します。 – van

関連する問題