Pythonは連鎖比較をサポートしています:1 < 2 < 3
に変換され(1 < 2) and (2 < 3)
ます。
次のようなSQLAlchemyを使用してSQLクエリを作成しようとしています。
results = session.query(Couple).filter(10 < Couple.NumOfResults < 20).all()
私が得た結果は期待通りではありませんでした。エンジンのecho=True
キーワードを変更しました。実際、生成されたSQLクエリには2つの比較のうちの1つしか含まれていませんでした。
これが禁止されていることを明示的に示しているドキュメントが見つかりません。このタイプの式がPythonでサポートされている場合は、SQLAlchemyでもサポートされるはずだと思いました。
なぜこれが機能しないのですか?私は1つの可能な解決策を念頭に置いています(回答で共有されています)が、他の意見を聞いて喜んでいます。