簡體   English   中英

Django 過濾所有包含至少一個 null 值的項目

[英]Django filter for all items which contain at least one null value

SO上其他地方的答案提供了 Postgresql NOT(<table> IS NOT NULL)查詢作為在包含一個或多個 null 值的表中查找所有行的選項。 如何在不寫原始 SQL 的情況下在 Django ORM 中應用此查詢? 或者這是需要原始 SQL 的情況?

我在最新的 Django docs中找不到諸如查詢之類的示例。

作為參考,鏈接答案中顯示的示例如下:

SELECT * FROM t;
┌────────┬────────┐
│   f1   │   f2   │
├────────┼────────┤
│ (null) │      1 │
│      2 │ (null) │
│ (null) │ (null) │
│      3 │      4 │
└────────┴────────┘
(4 rows)

SELECT * FROM t WHERE NOT (t IS NOT NULL);
┌────────┬────────┐
│   f1   │   f2   │
├────────┼────────┤
│ (null) │      1 │
│      2 │ (null) │
│ (null) │ (null) │
└────────┴────────┘
(3 rows)

您可以使用extra向查詢中添加額外的 WHERE 子句

Model.objects.extra(where=['NOT (%s IS NOT NULL)'], params=[Model._meta.db_table])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM