使用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
值字段?
答案 0 :(得分:5)
根据文档,这应该有效:
db.Where("owner_id IS NULL").Find(&dogs)
答案 1 :(得分:0)
您的原始尝试已接近完成。您还可以通过编写以下查询来获得所需的结果。
db.Where("owner_id = ?", "NULL").Find(&dogs)