使用sqlalchemy在where子句中使用多列进行查询

cru*_*tis 7 python mysql sql sqlalchemy

我正在寻找使用sqlalchemy执行此查询.

SELECT name,
       age,
       favorite_color,
       favorite_food
FROM kindergarten_classroom
WHERE (favorite_color,
       favorite_food) IN (('lavender','lentil soup'),('black','carrot juice'));
Run Code Online (Sandbox Code Playgroud)

我只想要喜欢(薰衣草和扁豆汤)或黑(胡萝卜汁)的孩子.此外,这可能是一个最喜欢的颜色和食物(可能> 10K)的巨大列表,所以我想要大批量做这些.

这是类似的,但并没有让我一路走来: Sqlalchemy in section

uni*_*rio 16

你想要tuple_构造:

session.query(...).filter(
    tuple_(favorite_color, favorite_food).in_(
        [('lavender', 'lentil soup'), ('black', 'carrot juice')]
    )
)
Run Code Online (Sandbox Code Playgroud)