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]
하지만 지금까지 내가이 방법은 아마, 먼저 데이터베이스의 모든 사용자를 검색 파이썬 객체로 선회 한 후 필터링을하고 이해. 파이썬이 데이터베이스가 아닌 필터링을하고 있기 때문에 많은 사용자가 있다면 그것은 비효율적 인 것처럼 보입니다.
감사를 할 수있는 특별히 귀하의 질문에 대답하기 위해, 나는 그것을 놓쳤다! – manecosta
파이썬은'__contains__'의 반환 값을 부울로 강제하기 때문에 "<<"lshift 해킹이있는 것입니다. – coleifer