概要
- 複雑な範囲指定のクエリを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()
よく考えればわかるんだけどメモ