Django:ORM是否支持SQL"IN"运算符?

Con*_*ion 19 django django-orm django-queryset

Django ORM是否支持SQL IN运算符?就像是:

SELECT *
FROM user
WHERE id IN (1, 5, 34, 567, 229)
Run Code Online (Sandbox Code Playgroud)

如何使用Django ORM进行类似的查询?

谢谢.

Yuj*_*ita 39

User.objects.filter(id__in=[1, 5, 34, 567, 229])

print _.query
SELECT <fields> FROM "auth_user" WHERE "auth_user"."id" IN (1, 5, 34, 567, 229)
Run Code Online (Sandbox Code Playgroud)


小智 5

除此之外,Django ORM 还支持子查询:

例如:

from django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
Run Code Online (Sandbox Code Playgroud)