写在前面

这几天在写一个demo。涉及到数据库查询的时候,遇到了这个问题。后来去网上查询了一下。才知道ErrRecordNotFound这个错误。

内容

	e := DB.Where("post_id = ?",post.PostId).Find(postRes).Error
	if e != nil {
		fmt.Println("查询失败")
	}

接着,无论我怎么测试,都会提示我查询失败…

经过查询,改成了

	e := DB.Where("post_id = ?",post.PostId).Find(postRes).Error
	if e == gorm.ErrRecordNotFound{
	   fmt.Println("查询失败")
	}

这是为什么呢?

在gorm中,如果我们查询不到某个记录。就会报改ErrRecordNotFind。也就是说gorm把找不到数据,也设置为了错误。

什么情况下会触发改错误?
使用 Find、First、Last查询,且传入的参数是结构体类型的时候。就会触发改错误。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐