sqlalchemy IS NOT NULL select

我怎样才能像在SQL中一样添加filter,以便从某个列中select不为NULL的值?

SELECT * FROM table WHERE YourColumn IS NOT NULL; 

我怎样才能使用SQLAlchemyfilter呢?

 select = select(table).select_from(table).where(all_filters) 

3 Solutions collect form web for “sqlalchemy IS NOT NULL select”

column_obj != None将产生一个IS NOT NULL约束 :

在列上下文中,生成子句a != b 。 如果目标是None ,则产生一个IS NOT NULL

或使用isnot() (0.7.9新增):

实现IS NOT运算符。

通常情况下,当与None的值进行比较时, IS NOT会自动生成,该值为NULL 。 但是,如果与某些平台上的布尔值进行比较,则显式使用IS NOT可能是可取的。

演示:

 >>> from sqlalchemy.sql import column >>> column('YourColumn') != None <sqlalchemy.sql.elements.BinaryExpression object at 0x10c8d8b90> >>> str(column('YourColumn') != None) '"YourColumn" IS NOT NULL' >>> column('YourColumn').isnot(None) <sqlalchemy.sql.elements.BinaryExpression object at 0x104603850> >>> str(column('YourColumn').isnot(None)) '"YourColumn" IS NOT NULL' 

从版本0.7.9开始,您可以使用filter运算符.isnot来代替比较约束,如下所示:

query.filter(User.name.isnot(None))

这个方法只有在pep8是一个问题时才需要。

源代码: sqlalchemy文档

如果其他人想知道,可以使用is_来生成foo IS NULL

 >>>从sqlalchemy.sql导入列
 >>> print列('foo')。is_(None)
 foo是NULL
 >>> print column('foo')。isnot(None)
 foo不是NULL
  • 值得使用sqlalchemy-migrate吗?
  • 在Flask中声明一个SQLAlchemy结果集
  • 在条款中的sqlalchemy
  • 500错误没有任何在Apache日志
  • 如何使用SQLAlchemy创buildSQL视图?
  • 通过SQLAlchemy获取随机行
  • 跨文件的SQLAlchemy类
  • SQLAlchemy:级联删除
  • 我应该创build映射器对象还是在SQLAlchemy中使用声明性语法?
  • 我如何知道我是否可以禁用SQLALCHEMY_TRACK_MODIFICATIONS?
  • 内存高效的内置SqlAlchemy迭代器/生成器?