为了账号安全,请及时绑定邮箱和手机立即绑定

在 GORM 中按日期过滤

在 GORM 中按日期过滤

Go
潇湘沐 2021-10-04 17:40:03
我正在使用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)


查看完整回答
反对 回复 2021-10-04
  • 1 回答
  • 0 关注
  • 519 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信