#python #sqlalchemy
#python #sqlalchemy
Вопрос:
У меня есть такая модель в 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
Ответ №1:
Я смог запросить его, используя этот метод:
db.query(MyModel).filter(MyModel.company_ids == '{}')
Однако я думаю, что это только конкретный ответ PostgreSQL
Ответ №2:
Я думаю, что способ SQLAlchemy сделать это
db.query(MyModel).filter(
func.cardinality(MyModel.company_ids == 0)
)