Python,sqlalchemy,选择WHERE IN子句

时间:2017-04-14 22:18:57

标签: python sqlalchemy

使用Python和sqlalchemy:

如何使用元组使用WHERE ... IN子句实现以下MySQL语句?

SELECT * FROM mytable WHERE (symbol, volume) IN (('ES', 238 ),('GB', 500 ),('OH', 800 ));

sqlalchemy 核心

(即 ORM版本)

我查看了文档,通常在SO / google上,这是无处可寻的......

3 个答案:

答案 0 :(得分:3)

假设您使用声明式样式(即ORM类)。对于你的桌子应该有一个orm类。我假设它是MyTable。那么代码将是这样的:

keys = [
    ('ES', 238 ),('GB', 500 ),('OH', 800 )
]

select([
    MyTable.url
]).select_from(
    MyTable
).where(
    tuple_(MyTable.symbol, MyTable.volume).in_(keys)
)

答案 1 :(得分:0)

答案 2 :(得分:0)

from sqlalchemy import tuple_
stmt = select([mytable]).where(tuple_(mytable.c.symbol,mytable.c.volume)
                               .in_([('ES',238),('GB',500),('OH',800)]))