我正在使用GORM访问我的数据库中的记录。现在我想检索所有未删除的记录,这意味着属性 DeletedAt 必须为 NULL。我用 尝试了以下命令链WHERE(),但没有返回任何结果。users := []*models.User{}db.Where("deleted_at", nil).Find(&users)和db.Where("deleted_at", "NULL").Find(&users)我的数据库模型由以下结构定义:type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time}type User struct { gorm.Model Username string `sql:"size:32; not null; unique"` Password string `sql:"not null"` Locale string `sql:"not null"`}
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
对于所有 RDBMS,SQL 标准要求涉及与 NULL 值进行比较的条件始终为假。因此,以下查询始终返回空结果:
select * from XXX where deleted_at = NULL
如果你想搜索 NULL 值,你应该写:
select * from XXX where deleted_at is null
我认为您可以通过确保 GORM 生成正确的查询来解决这个问题。例如,这应该有效(未经测试):
db.Where("deleted_at is null").Find(&users)
- 1 回答
- 0 关注
- 519 浏览
添加回答
举报
0/150
提交
取消