【问题标题】:Is there support for the IN-operator in the "SQL Expression Language" used in SQLAlchemy?SQLAlchemy 中使用的“SQL 表达式语言”中是否支持 IN 运算符?
【发布时间】:2010-10-27 14:34:47
【问题描述】:

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

SELECT * FROM foo WHERE foo.bar IN (1,2,3)

我想避免用纯文本编写 WHERE 子句。有没有一种类似于我下面的示例或不使用纯文本的方式来表达这一点?

select([foo], in(foo.c.bar, [1, 2, 3]))
select([foo]).in(foo.c.bar, [1, 2, 3])

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:
    select([foo], foo.c.bar.in_([1, 2, 3]))
    

    您可以将.in_() 方法与Columns 或Instrumented 属性一起使用。两者都有效。

    It is mentioned here SQLAlchemy 的第一个教程。

    【讨论】:

    • 感谢您的快速回答。您的示例中有一个错字,in 应该是 in
    • @suzanshakya 他们现在已经修复了
    【解决方案2】:

    .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()
    

    【讨论】:

      猜你喜欢
      • 2011-07-25
      • 2022-06-29
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多