Django ORM是否支持SQL IN
运算符?类似的东西:
SELECT *
FROM user
WHERE id IN (1, 5, 34, 567, 229)
如何使用Django ORM进行类似的查询?
感谢。
答案 0 :(得分:36)
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)
答案 1 :(得分:0)
如Yuji所示&lt; field_name&gt; __ in = [&lt; list_of_values&gt;]转换为以下SQL:
WHERE&lt; field_name&gt; IN(&lt; list_of_values&gt;)
您可以在以下Django API文档的字段查找部分找到django SQL WHERE运算符的完整参考。
答案 2 :(得分:0)
除此之外,Django ORM还支持子查询:
例如:
from django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))