我想从sql数据库中获取一行.我使用以下代码:
var name string
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
err := row.Scan(&name)
if err != nil {
// log the error
}
Run Code Online (Sandbox Code Playgroud)
例如:如果用户id=2不存在,则该方法Scan返回错误.
题:
当行不存在时,有没有办法避免这个错误?因为它绝对正常,我不想记录这样的错误.
我发现的唯一方法是使用Query而不是QueryRow,但它不方便,因为for rows.Next() { ..每次我想要获取单行时我都要添加.
Ale*_*ler 28
只需在登录前检查您不想记录的错误:
var name string
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
err := row.Scan(&name)
if err != nil && err != sql.ErrNoRows {
// log the error
}
Run Code Online (Sandbox Code Playgroud)