// 根据userId(主键)查询user var user User; if err := db.First(&user, userId).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { // 不存在 // do something } else { // 其他err,数据库查询异常 // do something } } // 存在 此时user即为查询结果 // do something
和first类似的方法:
1 2 3 4 5 6 7
// 获取一条记录,没有指定排序字段 db.Take(&user) // SELECT * FROM users LIMIT 1;
// 获取最后一条记录(主键降序) db.Last(&user) // SELECT * FROM users ORDER BY id DESC LIMIT 1;
find
find用于从数据库中检索全部对象,可搭配where等方法条件检索部分对象
1 2 3 4 5 6
// Get all records var users []User; result := db.Find(&users) // SELECT * FROM users; result.RowsAffected // 返回找到的记录数,等价于 len(users) result.Error // returns error