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

问题描述 投票:3回答:2

来自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值字段?

go go-gorm
2个回答
5
投票

根据文档,这应该工作:

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

0
投票

你原来的尝试很接近。您还可以通过编写如下查询来获得所需的结果。

db.Where("owner_id = ?", "NULL").Find(&dogs)
© www.soinside.com 2019 - 2024. All rights reserved.