繁体   English   中英

如何在Peewee中执行IN运算符

[英]How to do an IN operator in peewee

我有一个存储用户的数据库。 这些用户具有“ phone_number”属性。

我想检索其“ phone_number”包含在我的列表中的用户列表。

就像是:

contacts = ["123","321","456","654"]
friends = []
for user in User.select(User.phone_number).where(User.phone_number in contacts):
    friends.append(user.phone_number)

问题:该段代码返回每个用户的电话号码,而不仅仅是联系人中包含的电话号码。

我可以实现我想要的:

friends = [u.phone_number for u in User.select(User.phone_number) if u.phone_number in contacts]

但据我了解,这种方法可能是先从数据库中检索所有用户,然后将他们变成python对象,然后进行过滤。 如果我有大量用户,效率似乎非常低,因为它是由python而不是数据库进行过滤的。

本文档显示了peewee的查询运算符: http ://peewee.readthedocs.org/en/latest/peewee/querying.html#query-operators

要专门回答您的问题,您可以

User.phone_number << contacts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM