当使用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
值字段?
根据文档,这应该工作:
db.Where("owner_id IS NULL").Find(&dogs)
你原来的尝试很接近。您还可以通过编写如下查询来获得所需的结果。
db.Where("owner_id = ?", "NULL").Find(&dogs)