2017-04-14 101 views
0

使用Python和SQLAlchemy的:的Python,SQLAlchemy的,选择与WHERE IN子句

如何能够做到用一个元组用在下面的MySQL语句... IN子句?

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

在SQLAlchemy的核心(即的ORM版本)

我看着的文件中,一般对SO /谷歌,这是无处可寻...

回答

2

假设您使用声明式样式(即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

@AHM Forhadul伊斯兰教这是不是有用,因为它阻止其他用户张贴的正确答案。我在(粗体)我的问题中明确表示我对这个orm不感兴趣。你可能会留下你的答案,因为这可能对他人有帮助。 –

+0

对不起。我会尽快编辑我的答案 –

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