Sqlalchemy如何过滤同时包含空值和整数值的列

2024-05-15 19:36:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表,该表的列可以为空,其中包含两种类型的值:Null(作为默认值)和integer:

class Node(db.Model):
    __tablename__ = "node"
    maintenance = db.Column(db.Integer, nullable=True)

请求如下:

maintenance = 1
node_list = Node.query.filter(Node.maintenance != maintenance).all()

我需要选择包含Null0值的所有单元格。

提前谢谢你!


Tags: nodetrue类型dbmodelcolumnintegermaintenance
1条回答
网友
1楼 · 发布于 2024-05-15 19:36:45

I need to select all cells which contains 'Null' or '0' values.

使用|作为逻辑OR

Node.query.filter((Node.maintenance == None) | (Node.maintenance == 0))

使用is_(None)

或者,为了避免使用== None(因为棉绒)

Node.query.filter((Node.maintenance.is_(None)) | (Node.maintenance == 0))

使用or_

或者,这个表格

from sqlalchemy import or_
Node.query.filter(or_(Node.maintenance == None, Node.maintenance == 0))

使用in_

如果您想知道是否可以使用类似于SQL和Python中的in运算符的查询,那么您也可以使用SQLAlchemy进行查询,但不幸的是it doesn't work for ^{} values,但是为了说明这一点,我们可以看到

Node.query.filter(Node.maintenance.in_([0, 1]))

相当于

Node.query.filter((Node.maintenance == 0) | (Node.maintenance == 1))

相关问题 更多 >