一尘不染

使用sqlalchemy来查询使用多列的in子句

mysql

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

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

我只想要喜欢(薰衣草和扁豆汤)或(黑胡萝卜汁)的孩子。另外,这可能是大量喜欢的颜色和食物的列表(可能> 10K),因此,我想分批进行。

这是相似的,但并不能完全理解Sqlalchemy
in子句


阅读 934

收藏
2020-05-17

共1个答案

一尘不染

您需要tuple_构造:

session.query(...).filter(
    tuple_(favorite_color, favorite_food).in_(
        [('lavender', 'lentil soup'), ('black', 'carrot juice')]
    )
)
2020-05-17