この記事では、SQLAlchemyのfilter関数で、ANDやORで条件を複数指定する方法について紹介します。
スポンサーリンク
AND条件の指定
まずは、SQLAlchemyでAND条件を指定する方法を紹介します。
AND条件は、下記の3つの書き方ができます。結果としては同じになるため、好きな使ってください。
- filter関数を繋げてAND条件を複数指定する書き方
 
for user in session.query(User).\
  filter(User.name == '山田').\
  filter(User.age >= 20)
メソッドチェーンでfilter()関数を繋げて書くと、AND条件指定のSQLになります。
- カンマ区切りでAND条件を複数指定する書き方
 
session.query(User).filter(User.name == '山田', User.age >= 20)
filter()関数にカンマ区切りで条件を複数指定すると、AND条件指定のSQLになります。
- and_ モジュールを使用してAND条件を複数指定する書き方
 
from sqlalchemy import and_
query.filter(and_(User.name == 'ed', User.fullname == 'Ed Jones'))
AND条件でこの書き方をすることは、あまりないかも…
スポンサーリンク
OR条件の指定
続いて、SQLAlchemyでOR条件を指定する方法を紹介します。OR条件の指定は、or_モジュールを用います。
orはPythonの予約語なので、末尾に_(アンダーバー)が付いているのに気をつけてください。
from sqlalchemy import or_
query.filter(or_(User.name == '山田', User.name == '鈴木'))
さいごに
今回は、SQLAlchemyのfilter関数で、ANDやOR条件を指定する方法について紹介してきました。時間が空くと忘れてしまいがちですが、この記事を参考に思い出して貰えたら幸いです。

0 件のコメント:
コメントを投稿