SQLAlchemy,如何按空数组列过滤?

3

我有一个在SQLAlchemy中的这种模型:

class MyModel(Base):
    __tablename__ = 'my_models'
    name = Column(String(255), nullable=False)
    company_ids = Column(ARRAY(Integer), nullable=True)

我有意地创建了一些空数组的模型,并尝试像这样查询它们:

db.query(MyModel).filter(~MyModel.company_ids.any())

这并没有返回任何内容。

有可能过滤掉具有空数组字段的模型吗?

============更新===============

我能够通过使用以下方法进行查询:

db.query(MyModel).filter(MyModel.company_ids == '{}')

不过我认为这只是针对PostgreSQL的答案

2个回答

1
我能够通过使用这种方法查询它:

db.query(MyModel).filter(MyModel.company_ids == '{}')

然而,我认为这只是针对PostgreSQL的特定回答。

0

我认为SQLAlchemy的做法是

db.query(MyModel).filter(
 func.cardinality(MyModel.company_ids == 0)
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接