我想询问有关 GORM db.First()with Condition 的问题
好的,这是一个例子
if err := repository.db.First(&admin, id).Error; err != nil {
return nil, &response.Error{
Code: 500,
Err: err,
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的,因为 GORM 文档说明here
但是,这个怎么样?
if err := repository.db.First(&admin, email).Error; err != nil {
return nil, &response.Error{
Code: 500,
Err: err,
}
}
Run Code Online (Sandbox Code Playgroud)
那和这个一样吗?
err := repository.db.Where("email = ?", email).First(&admin).Error
提前致谢
我试图彻底阅读 GORM 文档,但我找不到任何关于我的方法可能完成的声明。所以,我在这里提问,希望得到一些启发
First方法用于获取第一条符合条件的记录,id默认会与主键字段( )进行检查。
repository.db.First(&admin, id)
Run Code Online (Sandbox Code Playgroud)
在这里,它将生成一个查询:SELECT * FROM admin WHERE id = :id
repository.db.First(&admin, "an-email@gmail.com")
Run Code Online (Sandbox Code Playgroud)
这与这里不同,repository.db.Where("email = ?", email).First(&admin)
它也会检查字段的条件id。
SELECT * FROM admin WHERE id = an-email@gmail.com- 会引发错误
相反,你可以尝试这个或与你相同的where
db.First(&admin, "email = ?", "an-email@gmail.com")
Run Code Online (Sandbox Code Playgroud)
因为这将检查字段的条件email。
您可以启用调试模式,它会显示查询
db = db.Debug()
Run Code Online (Sandbox Code Playgroud)
也可以看看
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
549 次 |
| 最近记录: |