【问题标题】: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


【解决方案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 快,但stackoverflow.com/questions/3074713/…IN 快一点(对于 MySQL),所以忽略答案。
    【解决方案3】:

    这是in的作品:

    演示:

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

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2017-01-10
      • 2022-01-17
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多