Python,sqlalchemy,使用WHERE IN子句进行选择

jim*_*iat 2 python sqlalchemy

使用Python和sqlalchemy:

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

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

在sqlalchemy 核心中(即不是 ORM版本)

我查看了文档,并且通常在SO / google上浏览,这无处可寻...

A H*_*lam 5

假设您使用声明式样式(即ORM类)。对于您的表,应该有一个orm类。我假设它是MyTable。然后,代码将如下所示:

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

select([
    MyTable.url
]).select_from(
    MyTable
).where(
    tuple_(MyTable.symbol, MyTable.volume).in_(keys)
)
Run Code Online (Sandbox Code Playgroud)

  • @AHM Forhadul Islam这没有用,因为它阻止其他用户发布正确的答案。我在问题(粗体)中明确指出,我对orm不感兴趣。不过,您可能会留下答案,因为这可能会对其他人有所帮助。 (2认同)