LoginSignup
13
10

More than 5 years have passed since last update.

sqlalchemy 複雑な範囲指定を動的にfilterする

Posted at

概要

  • 複雑な範囲指定のクエリをsqlalchemyで発行するメモ

やりたいこと

age = (10, 20, 30, 50, 60, )

みたいなリクエストが来た時に

SELECT *FROM hoge WHERE age >= 0 AND age < 10 or age >= 30 AND age < 40;

こういう AND とか OR が複雑になってる感じのやつを発行したい。

from sqlalchemy import or_, and_
query   = session.query(Models())
filters = []
for a in age:
    filters.append(and_(Models.age >= a, Models.age < a + 10))

query.filter(or_(*filters)).all()

よく考えればわかるんだけどメモ

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10