如何从表中提取行,用不同的值过滤同一列?
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
是的,我在发布答案时看到了,但给了你另一种选择,我认为OR
s 可能比IN
快,但***.com/questions/3074713/… 说IN
快一点(对于 mysql),所以忽略答案。【参考方案3】:
这是in
的作品:
演示:
>>> page.objects.filter(id__in=[238348,238349, 1])
[<page: o-0238349>, <page: o-0238348>]
【讨论】:
以上是关于如何从表中提取行,用不同的值过滤同一列?的主要内容,如果未能解决你的问题,请参考以下文章
从表中选择不同的记录并执行重复行的列总和(托盘、总和)。并显示重复的行一次[关闭]
从表中选择所有行并仅将不同的值插入到 C# 中另一个位置的数据库中
在PostgreSQL中,如何根据分类列中每个级别的比例从表中随机抽样?