python - SQLAlchemy 查询过滤器行为在文档中令人困惑

标签 python mysql sqlalchemy

我对如何在查询中使用多个过滤条件感到有点困惑。下面,SQLAlchemy 文档指出:

多个条件通过 AND 连接在一起:

session.query(MyClass).\
    filter(MyClass.name == 'some name', MyClass.id > 5)

尽管我在该查询中没有看到“AND”。

所以,我假设逗号是 AND 语法。

“OR”的语法是什么?

link to filter section of documentation

最佳答案

如果你向下滚动一点,你会在文档中看到这一点:

Changed in version 0.7.5: Multiple criteria joined by AND.

您使用 or_ 函数执行or。见下文。

>>> from sqlalchemy.sql import or_
>>> print or_(m.User.first_name == u'jaime', m.User.last_name == u'wyant')
"user".first_name = :first_name_1 OR "user".last_name = :last_name_1

关于python - SQLAlchemy 查询过滤器行为在文档中令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044330/

相关文章:

python - 避免针对 @dataclass 变量声明的 Python lint 警告

python - 以相同的宽度打印 ":"右侧的所有内容

python - 实用数据科学食谱Python代码

python - 生成 SQL "IN"子句 : how to safely handle input + empty value lists?

java - 从 Glassfish 迁移到 Wildfly/JBoss

python - 使用 distutils 为 python 扩展构建 RPM 时的相对包含路径

python - 在 Pyramid 应用程序中记录到 SQLAlchemy 记录器

python - WHERE 子句中的 MySQL 和 SQLAlchemy 整数转移

python - SQLAlchemy 通过 2 个多对多表建立关系

MySql - 使用来自同一个表的选择语句更新表