MySQLでは以下のようにtupleを使ってwhere句を書くことができる。
select
*
from table_schema.table t
where (t.col1, t.col2) in (
(val1, val2),
(val3, val4),
)
;
これをSqlAlchemyで記述する場合は、以下のようになる。
from sqlalchemy import tuple_
query = session.query(table).filter(
tuple_(table.c.col1, table.c.col2).in_(
[(val1, val2), (val3, val4), ]
)
)
# 当然 = も可能
query = session.query(table).filter(
tuple_(table.c.col1, table.c.col2)
== (val1, val2)
)