2015-01-06 4 views
1

사용자가 저장된 데이터베이스가 있습니다. 해당 사용자에게는 'phone_number'속성이 있습니다.peewee에서 IN 연산자를 수행하는 방법

내가 갖고있는 목록에 '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] 

하지만 지금까지 내가이 방법은 아마, 먼저 데이터베이스의 모든 사용자를 검색 파이썬 객체로 선회 한 후 필터링을하고 이해. 파이썬이 데이터베이스가 아닌 필터링을하고 있기 때문에 많은 사용자가 있다면 그것은 비효율적 인 것처럼 보입니다.

답변

관련 문제