読者です 読者をやめる 読者になる 読者になる

and_, or_は&, |でも書ける

SQLAlchemy

最近知った小ネタ。

and_関数を使ったクエリ、

result = session.query(Model).filter(and_(Model.a>1, Model.b==0)).all()

は、&演算子を使って、

result = session.query(Model).filter((Model.a>1) & (Model.b==0)).all()

とも書ける。同様に、or_関数を使ったクエリは|演算子でも書ける。

SQLAlchemyのドキュメントが一貫してand_, or_の書き方になっていたので、気がつかなかった。それに対して、Zineは一貫して&, |を使っているようだ。

and_, or_をインポートしなくてすむ分、後者の書き方の方がよさそうだが、好みの問題か。