数组列中不包含值的行的SQLAlchemy筛选器

2024-09-25 06:27:50 发布

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

我的桌子上有1001行。在

# 1001
print len(Session.query(MyTable).all())

一行在info列中有一个字符串“Recalled”,这是一个数组。在

^{pr2}$

但是当我否定过滤器时,我得到了0个结果,而不是我预期的1000个结果。在

# 0
query = Session.query(MyTable)
query = query.filter(~MyTable.info.contains(['Recalled']))
print len(query.all())

为什么这个没用?在


Tags: 字符串info过滤器lensessionmytable数组all
1条回答
网友
1楼 · 发布于 2024-09-25 06:27:50

这只是需要技巧的空值。你应该明确地包括它们,比如

from sqlalchemy.sql import or_
query = Session.query(MyTable)
query = query.filter(or_(MyTable.info == None, ~MyTable.info.contains(['Recalled'])))
print len(query.all())

相关问题 更多 >