如何从表中提取行,按不同的值过滤相同的列?

时间:2015-03-30 09:49:13

标签: django

我正在使用Django数据库进行Postgresql项目。

我有ID列表,即列值,我想从数据库中提取行。

Id列表:

[238348, 238349, 238350, 1000]

(Id rang不按顺序排列。)

对于单个id值:

>>> page.objects.filter(id=238348)
[<page: o-0238348>]

我可以使用for循环来迭代每个ID并获取行,但是有没有像OR这样的方法来提取行?

修改 完成了

我们可以使用in

演示:

>>> page.objects.filter(id__in=[238348,238349, 1])
[<page: o-0238349>, <page: o-0238348>]

3 个答案:

答案 0 :(得分:1)

您正在寻找in字段查找:

page.objects.filter(id__in=[238348, 238349, 238350, 1000])

答案 1 :(得分:1)

确实是in解决方案,其他方式是使用Q - 对象。有关文档,请参阅https://docs.djangoproject.com/en/1.7/topics/db/queries/#complex-lookups-with-q-objects

答案 2 :(得分:0)

这是in的工作:

演示:

>>> page.objects.filter(id__in=[238348,238349, 1])
[<page: o-0238349>, <page: o-0238348>]