您如何显式查找字段为NULL的记录?

时间:2018-07-04 14:43:08

标签: go go-gorm

来自documentation

  

使用struct查询时,GORM将仅查询那些字段具有非零值的字段,这意味着如果您的字段的值为0,'',false或其他零值,则它将不用于构建查询条件。

以下是我要执行的操作的示例:

type Dog struct {
  ID uuid.UUID
  OwnerID *uuid.UUID
}

所有者ID指针可能为零。

db.Where("owner_id", nil).Find(&dogs)

但是这会返回所有的狗(我从文档中希望得到它)。我尝试这样做:

db.Where("owner_id", "NULL").Find(&dogs)

但这会返回一个空列表。

有没有一种方法可以显式搜索NULL值字段?

2 个答案:

答案 0 :(得分:5)

根据文档,这应该有效:

db.Where("owner_id IS NULL").Find(&dogs)

答案 1 :(得分:0)

您的原始尝试已接近完成。您还可以通过编写以下查询来获得所需的结果。

db.Where("owner_id = ?", "NULL").Find(&dogs)