需要过滤现有的queryset

n3schb8v  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(290)

我需要在sqlalchemy中进一步过滤现有的查询集。示例:让users表在数据库中有10000条记录。。。users=users.query.filter(is\u active=true)--获得1000条记录。。。现在,我只想使用这1000条记录,并想检查用户的位置是否为“海得拉巴”……与其签入整个10000条记录,不如只签入现有的1000条记录,以便提高性能。
我想我已经清楚地提到了问题陈述。。
先谢谢你。。。

dxxyhpgq

dxxyhpgq1#

您可以使用 and_ 或者 _or 像这样的

from sqlalchemy import and_, or_, not_

query = meta.Session.query(User).filter(
    and_(
        User.is_active.like(search_variable_like),
        User.location.like(search_variable_location)
    )
)

更新并获取符合条件的所有用户记录

users = User.query.filter(is_active=True).all()

# now got the 1k records, check for location

hyderabad_users = []

for user in users:
   if user.location == 'Hyderabad':
      hyderabad_users.append(user)

相关问题