【发布时间】:2011-07-25 19:27:27
【问题描述】:
Django ORM 是否支持 SQL IN 运算符?比如:
SELECT *
FROM user
WHERE id IN (1, 5, 34, 567, 229)
如何使用 Django ORM 进行这样的查询?
谢谢。
【问题讨论】:
标签: django django-queryset django-orm
Django ORM 是否支持 SQL IN 运算符?比如:
SELECT *
FROM user
WHERE id IN (1, 5, 34, 567, 229)
如何使用 Django ORM 进行这样的查询?
谢谢。
【问题讨论】:
标签: django django-queryset django-orm
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)
【讨论】:
除此之外,Django ORM 还支持 Sub-Query:
例如:
from django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))
【讨论】:
正如 Yuji 上面所说的,
WHERE
您可以在以下 Django API 文档的 Field lookups 部分找到 django SQL WHERE 运算符的完整参考。
【讨论】: