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

Posted

技术标签:

【中文标题】如何从表中提取行,用不同的值过滤同一列?【英文标题】:How to extract rows from the table, filter same column by diffrernt values? 【发布时间】:2015-06-03 06:46:39 【问题描述】:

我正在使用 Postgresql 数据库开发 Django 项目。

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

身份证号:

[238348, 238349, 238350, 1000]

(id响不按顺序。)

对于单个 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>]

【问题讨论】:

django filter with list of values的可能重复 【参考方案1】:

您正在寻找in 字段查找:

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

【讨论】:

【参考方案2】:

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

【讨论】:

好的,谢谢。它正在使用in。我在发布问题后检查了。 +1 是的,我在发布答案时看到了,但给了你另一种选择,我认为ORs 可能比IN 快,但***.com/questions/3074713/… 说IN 快一点(对于 mysql),所以忽略答案。【参考方案3】:

这是in的作品:

演示:

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

【讨论】:

以上是关于如何从表中提取行,用不同的值过滤同一列?的主要内容,如果未能解决你的问题,请参考以下文章

从表中选择不同的记录并执行重复行的列总和(托盘、总和)。并显示重复的行一次[关闭]

从表中选择所有行并仅将不同的值插入到 C# 中另一个位置的数据库中

如何从表中获取字段列表和不同值

在PostgreSQL中,如何根据分类列中每个级别的比例从表中随机抽样?

如何从表中提取信息以填充已创建数据仓库中的 CALENDAR 表

TSQL - 如何在插入之前根据不同列中的值检查值?