この記事では、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 件のコメント:
コメントを投稿