在SQLAlchemy中使用的"SQL表达式语言"中是否支持IN运算符?

Mat*_*ias 15 python sqlalchemy

是否可以在SQLAlchemy中使用的"SQL表达式语言"中表达如下所示的查询?

SELECT * FROM foo WHERE foo.bar IN (1,2,3)
Run Code Online (Sandbox Code Playgroud)

我想避免以纯文本形式编写WHERE子句.有没有办法表达这个类似于我的下面的例子或以任何不使用纯文本的方式?

select([foo], in(foo.c.bar, [1, 2, 3]))
Run Code Online (Sandbox Code Playgroud)
select([foo]).in(foo.c.bar, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

nos*_*klo 23

select([foo], foo.c.bar.in_([1, 2, 3]))
Run Code Online (Sandbox Code Playgroud)

您可以将此.in_()方法与列或使用检测属性一起使用.两者都有效.

这里提到 SQLAlchemy的第一个教程.

  • 两个链接都死了. (2认同)

jay*_*e00 6

.in_()运算符现在位于ColumnOperators类中,记录为@ http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.in_

用法示例:

ids_to_select = ["1", "2", "3"]
query(Model).filter(Model.id.in_(ids_to_select)).all()
Run Code Online (Sandbox Code Playgroud)