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)