使用Python和sqlalchemy:
如何使用元组使用WHERE ... IN子句实现以下MySQL语句?
SELECT * FROM mytable WHERE (symbol, volume) IN (('ES', 238 ),('GB', 500 ),('OH', 800 ));
(即不 ORM版本)
我查看了文档,通常在SO / google上,这是无处可寻的......
答案 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)
尝试阅读本文档的这一部分 -
http://docs.sqlalchemy.org/en/latest/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.in_
答案 2 :(得分:0)
from sqlalchemy import tuple_
stmt = select([mytable]).where(tuple_(mytable.c.symbol,mytable.c.volume)
.in_([('ES',238),('GB',500),('OH',800)]))