你如何明确地找到一个字段为 NULL 的记录?
How do you explicitly find a record where a field is NULL?
When query with struct, GORM will only query with those fields has non-zero value, that means if your field’s value is 0, '', false or other zero values, it won’t be used to build query conditions.
这是我正在尝试做的一个例子:
type Dog struct {
ID uuid.UUID
OwnerID *uuid.UUID
}
所有者 ID 指针可能为 nil。
db.Where("owner_id", nil).Find(&dogs)
但是 returns 所有的狗(我从文档中预料到这一点)。我尝试这样做:
db.Where("owner_id", "NULL").Find(&dogs)
但是 returns 一个空列表。
有没有办法显式搜索 NULL
值字段?
根据文档,这应该有效:
db.Where("owner_id IS NULL").Find(&dogs)
您最初的尝试很接近。您也可以通过如下方式编写查询来达到您想要的结果。
db.Where("owner_id = ?", "NULL").Find(&dogs)
When query with struct, GORM will only query with those fields has non-zero value, that means if your field’s value is 0, '', false or other zero values, it won’t be used to build query conditions.
这是我正在尝试做的一个例子:
type Dog struct {
ID uuid.UUID
OwnerID *uuid.UUID
}
所有者 ID 指针可能为 nil。
db.Where("owner_id", nil).Find(&dogs)
但是 returns 所有的狗(我从文档中预料到这一点)。我尝试这样做:
db.Where("owner_id", "NULL").Find(&dogs)
但是 returns 一个空列表。
有没有办法显式搜索 NULL
值字段?
根据文档,这应该有效:
db.Where("owner_id IS NULL").Find(&dogs)
您最初的尝试很接近。您也可以通过如下方式编写查询来达到您想要的结果。
db.Where("owner_id = ?", "NULL").Find(&dogs)